您的位置:首页 > 编程语言 > Java开发

javaoop---jdbc 入门级别

2016-05-11 10:48 323 查看
1. 连接整个 数据库 的顺序 就是:

---- 加载 驱动类
------------创建连接对象 ----------传送 sql语句 ----------处理结果-------

反射 里面的 功能(导入一个 jar包先)
DriverManage类 有 一个 创建对象的 方法 String sql="insert into goods values('爽歪歪','瓶',2.5,100)";

class.forName( Connection sqlcon=DriverM.getCon(a,ab,bc); Statement
stm=sqlcon.createStatement();

com.mic......SqlserverDriver);
需要 提供的 是 数据库的名字 ,账号,密码 int iline = stm.executeUpdate(sql); 普通的
插入,直接执行之后 返回一个 改变行数

String url="jdbc:sqlserver://localhost:1433;

DataBaseName=XT003";

String user="sa";

String password="123456";

1.如果 你需要 执行之后的 是一个 结果集

String sql="select * from goods";//编写查询sql语句

Statement stm=sqlcon.createStatement();

//第四步:执行查询语句并返回查询的结果集

ResultSet rst = stm.executeQuery(sql);

while(rst.next()){

int id = rst.getInt("id");

String gname=rst.getString("gname");

String gunit=rst.getString("gunit");

double gprice= rst.getDouble("gprice");

int icount=rst.getInt("icount");

System.out.println("编号:"+id+";名称:"+gname+";单位:"+gunit+";单价:"+gprice+";库存:"+icount);

}

3. 如果 说 : 你想 输入 变量 到 sql 语句,就需要用到

3.1 String sql="insert into goods values(?,?,?,?)";

Connection sqlcon=DriverManager.getConnection(url, user, password);

PreparedStatement pst = sqlcon.prepareStatement(sql);

// 一个一个赋值

p st.setString(1, "爽歪歪");

pst.setString(2, "桶");

pst.setDouble(3, 2.5);

pst.setInt(4, 100);

这个 不是查询的 结果集,于是 返回一个行数 int iline = pst.executeUpdate();

如果 是返回的 结果集 ,那么 还是 一样的

pst=sql.prepSta(sql语句);

Result rst= pst.executeQuery();

while(rst.next()){

你就直接写 数据库中 哪一行的 名字就行

rst.getObject("myName");

}

-----------------------------------------------------------------------------------------------------------------------------------------------------------------

但是 在实际中 ,由于 经常的使用到 这几个方法,所以 我们会打包 号, 直接调用代码如下

public class DBManager {
这一个 是数据库的 名字

private String url="jdbc:sqlserver://localhost:1433;DataBaseName=XT004";

private String user="sa";

private String password="123456";

private Connection sqlcon=null;

private PreparedStatement pst=null;

/**

* 获取链接对象

* @return

* @throws SQLException

*/

private Connection GetConnection() throws SQLException{

try {

Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");

} catch (ClassNotFoundException e) {

e.printStackTrace();

}

return DriverManager.getConnection(url, user, password);

}

/**

* 执行insert,update,delete SQL语句

* @param sql

* @param objs

* @return

* @throws SQLException

*/

public int MyExecuteUpdate(String sql,Object ...objs) throws SQLException{

sqlcon=GetConnection();

pst=sqlcon.prepareStatement(sql);

if(objs!=null){

if(objs.length>0){

int idx=1;

for(Object obj : objs){

pst.setObject(idx, obj);

idx++;

}

}

}

int iline = pst.executeUpdate();

if(pst!=null){

pst.close();

}

if(sqlcon!=null){

sqlcon.close();

}

return iline;

}

public ResultSet GetResultSet(String sql,Object ...objs) throws SQLException{

sqlcon=GetConnection();

pst=sqlcon.prepareStatement(sql);

if(objs!=null){

if(objs.length>0){

int idx=1;

for(Object obj : objs){

pst.setObject(idx, obj);

idx++;

}

}

}

ResultSet rst = pst.executeQuery();

return rst;

}

/**

* 关闭数据库所有连接对象释放数据库连接资源

* @throws SQLException

*/

public void CloseAll() throws SQLException{

if(pst!=null){

pst.close();

}

if(sqlcon!=null){

sqlcon.close();

}

}

/**

* 执行多条sql语句 使用事务处理

* @param sqlList

* @param objsList

* @return

*/

public int MyTransaction(List<String> sqlList,List<Object[]> objsList){

int iline=-1;

try{

sqlcon=GetConnection();//获取链接对象

sqlcon.setAutoCommit(false);//取消事务的自动提交功能

if(sqlList.size()>0){

for(int i=0;i<sqlList.size();i++){

String sql=sqlList.get(i);//获取要执行的sql语句

Object [] objs=objsList.get(i);//获取要执行的sql语句的参数

pst=sqlcon.prepareStatement(sql);//创建pst对象

if(objs!=null){//为sql语句的参数赋值

if(objs.length>0){

int idx=1;

for(Object obj : objs){

pst.setObject(idx, obj);

idx++;

}

}

}

pst.execute();//执行sql语句

}

}

iline=1;

sqlcon.commit();//如果sql语句执行成功,则提交事务

}catch(SQLException e){

if(sqlcon!=null){

try {

sqlcon.rollback();//如果sql语句执行失败,则回滚事务

} catch (SQLException e1) {

e1.printStackTrace();

}

}

e.printStackTrace();

}finally{

try{

if(pst!=null){

pst.close();

}

if(sqlcon!=null){

sqlcon.close();

}

}catch(SQLException e){

e.printStackTrace();

}

}

return iline;

}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: