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();