JAVA(15)-preparedStatement-CallableStatement-Batch-Transaction

1preparedStatement sql 特别长,列特别多。
 

Class.forname("orcale.jdbc.driver.OracleDriver");
  conn=DriverManager.getConnection()
 preparedStatement pstmt=null;
 pstmt=conn.PreparedStatement(“insert into dept2 values(?,?,?)”);
 pstmt.setInt(1,deptno);//1代表第一个问号
 pstmt.setString(2,dname);//1代表第一个问号
 pstmt.setString(3,loc);//1代表第一个问号
 pstmt.executeupdate(sql);

2.存储过程:CallableStatement

Class.forname("orcale.jdbc.driver.OracleDriver");
 Connection conn=DriverManager.getConnection()
 CallableStatement cstmt=conn.prepareCall("(call p(?,?,?,?))");
 cstmt.setInt(1,22);//第1个问号赋值22
 cstmt.setString(2,03);//第2个问号赋值03
 cstmt.setString(4,55);//第4个问号赋值55
 cstmt.registerOutParameter(3,Types.INTEGER);
 cstmt.registerOutParameter(4,Types.INTEGER);
 system.out.println(cstmt.getInt(3));
 system.out.println(cstmt.getInt(4));
 cstmt.close();
 conn.close();

3.批处理 :Batch

Class.forname("orcale.jdbc.driver.OracleDriver");
 Connection conn=DriverManager.getConnection()
 PreparedStatement pa=conn.PrepareStatement("insert into dept2 value(?,?,?)");

pa.setInt(1,22);
pa.setstring(2,"haha");
pa.setInt(3,"bj");
pa.addBatch();

pa.setInt(1,21);
pa.setstring(2,"haha");
pa.setInt(3,"bj");
pa.addBatch();

pa.setInt(1,26);
pa.setstring(2,"haha");
pa.setInt(3,"bj");
pa.addBatch();

pa.executrupdate();
pa.close();
conn.close()

4.运行事物处理:Transaction
 

//1.
Connection conn=DriverManager.getConnection();
//2.添加一条语句
conn.SetAutoCommit(false);
stmt=conn.createStatement();
stmt.addBatch("insert into dept2 values(51,'500','haha')");
stmt.executeBatch();
//添加完后,自己提交
conn.commit();

//提交完后恢复
conn.SetAutoCommit(true);
conn.rollback();

猜你喜欢

转载自blog.csdn.net/aggie4628/article/details/107370305