gpt4 book ai didi

java - PreparedStatement.executeUpdate() 能否在 INSERT 时返回 0?

转载 作者:行者123 更新时间:2023-11-29 09:54:45 25 4
gpt4 key购买 nike

PreparedStatement 对象上使用方法 executeUpdate 执行的 SQL INSERT 语句是否会在任何条件下返回 0 而不会抛出 SQLException?

例如:

String query = "INSERT INTO mytable (column1,column2) VALUES (5,6)";
PreparedStatement preparedStatement = connection.prepareStatement(query);
if(preparedStatement.executeUpdate()!=1){
// A strange error has occurred
} else{
// do what ever
}

我为什么要问这个问题?我目前总是检查以确保返回的行数等于 1,但我想知道如果它永远不会返回 1 以外的任何内容,这是否有点过分了。

最佳答案

所以我尝试了一下,是的,您可以通过 INSERT 语句获得 0 返回值。如果您 SELECT * FROM 一个没有行的表 INTO 另一个表,就会发生这种情况。例如,假设 domaindomain2 具有相同的架构并且 domain2 为空,执行以下操作

Connection con = dataSource.getConnection();
PreparedStatement ps = con.prepareStatement("INSERT INTO domain SELECT * FROM domain2");
System.out.println(ps.executeUpdate());

打印0

我唯一一次使用 executeUpdate 的返回值是在一行上使用 DELETE 语句来确保它之前存在并且已被删除。我认为您不应该将它与 INSERT 一起使用。

关于java - PreparedStatement.executeUpdate() 能否在 INSERT 时返回 0?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18258891/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com