2.3.2 用executeUpdate方法更新数据

优质
小牛编辑
131浏览
2023-12-01

除了使用execute方法执行不返回结果集的SQL语句外,还可以使用executeUpdate方法来完成同样的工作。executeUpdate()方法的定义如下:

int executeUpdate(String sql) throws SQLException;

在2.2.1节曾讲到executeQuery方法不能执行象INSERT、UPDATE一样的不返回查询结果的语句。但这种说法并不严谨。这种说法对于一条SQL语句是没有任何问题的,但如果对于多条SQL语句同时执行的情况下,就不够准确。更严谨的说法应该是“executeQuery方法执行的第一条SQL语句必须是返回结果集的SQL语句,而后面跟着的其他SQL语句可以是任何正确的SQL语句,其中包括INSERT、DELETE、UPDATE、CREATE TABLE等”。也就是说,下面的SQL语句是可以使用executeQuery方法成功执行的:

String sql = "SELECT name, author, price FROM t_books; DELETE FROM t_booksale WHERE id = 1";

stmt.executeQuery(sql);

如果executeQuery方法执行的是多条SQL语句,并且第一条是查询语句,仍然能正确返回ResultSet对象。

executeUpdate方法和executeQuery方法类似,也就是说,executeUpdate方法在执行多条SQL语句时,第一条SQL语句必须是不返回结果集的SQL语句,而第2条及以后的SQL语句可以是任何正确的SQL语句。因此,实例2-4中的execute方法可以用executeUpdate或executeQuery代替,但是输入SQL时就会有限制。如果用executeUpdate方法代替,所输入的第一条SQL语句必须是不返回结果集的SQL语句,而用executeQuery方法代替时,正好相反。