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