使用executeQuery而不是executeUpdate删除行有什么危害

时间:2010-10-14 09:22:03

标签: sql jdbc

在我的代码中我正在使用

String query= "delete all from myTable";
stmt.executeQuery(query);

理想情况下,对于DML,应该使用executeUpdate。但是,executeQuery也运行良好。所以,很想知道使用executeQuery而不是executeUpdate可能会带来什么危害?

2 个答案:

答案 0 :(得分:1)

首先,您没有获得更新行的数量。

其次,取决于JDBC驱动程序,您的查询可能会失败。

答案 1 :(得分:1)

它不会告诉您有多少行受到影响。

它会创建一个值得怀疑的ResultSet(或者可能不是?)。

你确定这适用于所有数据库吗? Javadoc说如果“给定的SQL语句产生除单个ResultSet对象以外的任何东西”,驱动程序可以抛出SQLException,DELETE可能符合条件。

如果您真的不知道是否要运行查询或DML,可以使用execute(),这对两者都有效,然后让您拨打getUpdateCount或{{1}甚至getResultSet