JDBC

来源:互联网 发布:淘宝紫砂壶店铺 编辑:程序博客网 时间:2024/06/05 17:05

JDBC

本章学习要点:

  • Statement

  • Preparedstatement

  • Callablestatement

Statement

1.加载驱动
class.forname(“oracle.jdbc.driver.OracleDriver”);
2.获得连接对象
connection con=drivermanager.getconnection(“jdbc:oracle:thin:@localhost:1521:ORCL”,”用户名”,”密码”);
3.建立st对象
statement st=con.createstatement();
4.执行sql语句
String sql=”sql语句”;
如果SQL语句是增,删,改的话
int count=st.executeupdate(sql);
返回的是int ,如果count>0则表示执行成功,否则执行失败
如果SQL语句是查询的话
resultset rs=st.executequery(sql)

遍历数据
while(rs.next()){//光标下移
//取数据
system.out.println(rs.getint(1)+…….)
}

5.关闭
rs.close;
st.close;
con.close;

Preparedstatement

1.加载驱动
class.forname(“oracle.jdbc.driver.OracleDriver”);
2.获得连接对象
connection con=drivermanager.getconnection(“jdbc:oracle:thin:@localhost:1521:ORCL”,”用户名”,”密码”);
3.输入SQL语句
String sql=”SQL语句”其中的变量用?代替
4.建立ps对象
preparedstatement ps=con.preparedstatement(sql)
5.赋值
ps.setString(1,变量);
ps.setInt(2,变量);
ps.setFloat(3,变量);
6.执行
(1)SQL语句是增,删,改
int count=ps.executeupdate();
count 大于1则操作成功
反之失败
或者
boolean flag=ps.execute返回的是布尔型
若flag=false 则操作成功
反之 失败
(2)SQL是查询
if(ps.execute();){
如果为真
resultset rs=ps.getresultset();
while(rs.next()){//光标下移
//取数据
system.out.println(rs.getint(1)+…….)
}

7.关闭
rs.close;(看是否有rs)
ps.close;
con.close;

Callablestatement

<1>调用方法是增删改
1.加载驱动
class.forname(“oracle.jdbc.driver.OracleDriver”);
2.获得连接对象
connection con=drivermanager.getconnection(“jdbc:oracle:thin:@localhost:1521:ORCL”,”用户名”,”密码”);
3.写入SQL
String sql=”{call 存储过程(参数?,参数?…….)}”;
4.建立cs对象
callablestatement cs= con.preparecall(sql);
5设置值
输入值
cs.setString(1,变量);
cs.setInt(2,变量);
cs.setFloat(3,变量);
返回值
cs.registeroutparemeter(4,types.数据类型);
6.执行
cs.execute;

7获得返回值
int count=cs.getInt(4);
return count;
根据返回值类型变化
8.关闭
if(cs!=null){
cs.close
}
if(con!=null){
cs.con
}

<2>调用方法是查询
1.加载驱动
class.forname(“oracl.jdbc.driver.jdbcodbcdriver”);
2.获得连接对象
connection con=drivermanager.getconnection(“jdbc:oracle:thin:@localhost:1521:ORCL”,”用户名”,”密码”);
3.写入SQL
String sql=”{call 存储过程(参数?,参数?…….)}”;
4.建立cs对象
callablestatement cs= con.preparecall(sql);
5设置值
输入值
cs.setString(1,变量);
cs.setInt(2,变量);
cs.setFloat(3,变量);
返回值
cs.registeroutparemeter(4,oracletypes.cursor//光标);
6.执行
cs.execute();
7.获得输出参数
rs=(Resultset)cs.getobject(4);
while(rs.next()){
system.out.println(rs.getint(1)+………)
}
8.关闭
if(rs!=null){
rs.close
}
if(cs!=null){
cs.close
}
if(con!=null){
cs.con
}

0 0