比如下面的代码片断,如果不用batch,如何实现?
谢谢 conn.setAutoCommit(false);
Statement stmt = conn.createStatement(sql);
for (int i=0; i<10; i++) {
String sql = "INSERT INTO my_table VALUES('"+i+"')";
stmt.addBatch(sql);
}
String sql = "DELETE FROM table2 where id='2'";
stmt.addBatch(sql);
stmt.executeBatch();
conn.commit();
谢谢 conn.setAutoCommit(false);
Statement stmt = conn.createStatement(sql);
for (int i=0; i<10; i++) {
String sql = "INSERT INTO my_table VALUES('"+i+"')";
stmt.addBatch(sql);
}
String sql = "DELETE FROM table2 where id='2'";
stmt.addBatch(sql);
stmt.executeBatch();
conn.commit();
其它如果是少量的,我是直接用stmt.的其它方法,最后在总的后面加个conn.commit();
还有其它么,我想知道^_^
执行的sql里面有的类型(比如Boolean)在各种数据库存储的数据可能不一样
有的可能用true,false表示
有的可能用1,0表示如果用prepareStatement,
可以用下面的方法设置值
pStmt.setBoolean(int index , boolean b)但是如果用了batch,
好像就必须指定特定的值我就是为了解决这个问题。请问有没有什么好的方案?
可能有的关系数据库不支持batch操作
PreparedStatement updateSales = con.prepareStatement(
"UPDATE COFFEES SET SALES = ? WHERE COF_NAME LIKE ?");
updateSales.setInt(1, 50);
updateSales.setString(2, "Colombian");
updateSales.executeUpdate();
PreparedStatement updateTotal = con.prepareStatement(
"UPDATE COFFEES SET TOTAL = TOTAL + ? WHERE COF_NAME LIKE ?");
updateTotal.setInt(1, 50);
updateTotal.setString(2, "Colombian");
updateTotal.executeUpdate();
con.commit();
con.setAutoCommit(true);