标题: JDBC-PrepareStatement批处理问题 [打印本页] 作者: 随风而去 时间: 2014-4-15 19:55 标题: JDBC-PrepareStatement批处理问题 我今天用JDBC批处理的时候发现一个很奇怪的问题,求同学们帮我解答解答用PreparedStatement 处理批量的不同的sql 语句时,
stmt = con.prepareStatement("Delete From test Where name like ?");
stmt.setString(1, "li");
这上面的2个没有返回,只有下面的addBatch()这个方法才可以得到返回的结果。
public static int[] testDelBitch(){
int [] isOK = null; //批处理返回的是一个int类型的数组
Connection con = null;
PreparedStatement stmt = null;
ResultSet rs = null;
try {
con =getConnection();
con.setAutoCommit(false); //设置为手动提交
stmt = con.prepareStatement("Delete From test Where name like ?");
stmt.setString(1, "li");
//添加2个批处理删除sql
stmt.addBatch("Delete From test2 Where name='liyi'");
stmt.addBatch("Delete From test Where name='liyi'");
isOK = stmt.executeBatch();
con.commit(); //提交
} catch (SQLException e) {
try {
con.rollback(); //如果发生异常,全部回滚
} catch (SQLException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}