JDBC批量删除

今天用JDBC批量删除数据的时候,控制台返回的结果全是-2 -2 -2,呵呵,(第一次用),对我来说可奇了怪了。赶紧跑到数据库那里查询下,发现数据删除成功,但是还不明白为啥会返回负数。就接着上网上查了下补充补充知识:

executeBatch是从Statement继承的方法
executeBatch返回的数组中的元素可能为以下元素之一:
1.大于或等于零的数。指示成功处理了命令,是给出执行命令所影响数据库中行数的更新计数
2.SUCCESS_NO_INFO = -2。指示成功执行了命令,但受影响的行数是未知的
3.EXECUTE_FAILED = -3。指示未能成功执行命令,仅当命令失败后驱动程序继续处理命令时出现

我删除的代码是:

//批量删除分类对象
public void deleteBat(Integer[] catNo){
try {
Connection con=DBUtil.getInstance().getCon();
String sql="delete from cat where catno=?";
con.setAutoCommit(false);
PreparedStatement ps=con.prepareStatement(sql);
for (Integer in : catNo) {
ps.setInt(1, in);
ps.addBatch();
}
int[] result=ps.executeBatch();
con.commit();
for (int i : result) {
System.out.println(i);
}
} catch (ClassNotFoundException e) {
e.printStackTrace();
} catch (SQLException e) {
e.printStackTrace();
}
}

你可能感兴趣的:(java基础,JDBC,SQL)