JDBC批量删除 博客分类: java基础 JDBCSQL
程序员文章站
2024-02-25 23:13:57
...
今天用JDBC批量删除数据的时候,控制台返回的结果全是-2 -2 -2,呵呵,(第一次用),对我来说可奇了怪了。赶紧跑到数据库那里查询下,发现数据删除成功,但是还不明白为啥会返回负数。就接着上网上查了下补充补充知识:
executeBatch是从Statement继承的方法
executeBatch返回的数组中的元素可能为以下元素之一:
1.大于或等于零的数。指示成功处理了命令,是给出执行命令所影响数据库中行数的更新计数
2.SUCCESS_NO_INFO = -2。指示成功执行了命令,但受影响的行数是未知的
3.EXECUTE_FAILED = -3。指示未能成功执行命令,仅当命令失败后驱动程序继续处理命令时出现
我删除的代码是:
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(); } }