在我的代码中我正在使用
String query= "delete all from myTable";
stmt.executeQuery(query);
理想情况下,对于DML,应该使用executeUpdate。但是,executeQuery也运行良好。所以,很想知道使用executeQuery而不是executeUpdate可能会带来什么危害?
答案 0 :(得分:1)
首先,您没有获得更新行的数量。
其次,取决于JDBC驱动程序,您的查询可能会失败。
答案 1 :(得分:1)
它不会告诉您有多少行受到影响。
它会创建一个值得怀疑的ResultSet(或者可能不是?)。
你确定这适用于所有数据库吗? Javadoc说如果“给定的SQL语句产生除单个ResultSet对象以外的任何东西”,驱动程序可以抛出SQLException,DELETE可能符合条件。
如果您真的不知道是否要运行查询或DML,可以使用execute(),这对两者都有效,然后让您拨打getUpdateCount
或{{1}甚至getResultSet
。