Jdbc的批处理执行

来源:互联网 发布:淘宝上面买东西没发票 编辑:程序博客网 时间:2024/06/06 20:07

PreparedStatement的addBatch()使用

1、建立连接


数据库连接池: JNDI    (配置略)

Context   initial = new   InitialContext();

DataSource  ds = (DataSource)initial.lookup("java:  配置名");

Connection  conn =  ds.getConnection();


2、不自动Commit

conn.setAutoCommit( false);


3、预编译sql,只编译一次,效率高

PrepareStatement   pstatement=  conn.prepareStatement("insert  into  table  values(?, ?)");


 //记录1
pstatement.setInt(1, 1);
pstatement.setString(2, "Cujo");
pstatement.addBatch();  

//记录2
pstatement.setInt(1, 2);
pstatement.setString(2, "Fred");
pstatement.addBatch();  

//记录3
pstatement.setInt(1, 3);
pstatement.setString(2, "Mark");
pstatement.addBatch();  

          

int[]   counts = statement.execureBatch();

conn.commit();


注意使用pstatement.clearBatch();


2、如果是多条语句


/不可以更新的ResultSet对象的并发模式

statement = conn.createStatement(ResultSet.TYPE_SAROLL_INSENSITIVE,ResultSet.CONCUR_READ_ONLY);  

 //可以更新的ResultSet对象的并发模式

statement  = conn.createStatement(ResultSet.TYPE_SAROLL_INSENSITIVE,ResultSet.CONCUR_UPDATABLE);  


statement.addBatch("select ....? ?");

statement.addBatch("update... ? ?");

   

statement .executeBatch();

conn.commit();


                                                      

原创粉丝点击