gpt4 book ai didi

java - 当我从 Java 在 mySQL 中提交时如何知道删除的行数

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

我在两个不同的表上有两个delete 操作。删除后我知道是否执行了两个查询。这是我的代码。

properties.load(inputStream);
String sql = properties.getProperty("deleteImageByImageID");
ps = DBConnection.prepareStatement(sql);
ps.setString(1, imageID);

sql = properties.getProperty("deleteAnnImageByImageID");
ps2 = DBConnection.prepareStatement(sql);
ps2.setString(1, imageID);


int count = ps.executeUpdate();
count += ps2.executeUpdate();

但现在我确实通过添加更改了代码

DBConnection.setAutoCommit(false);
....
DBConnection.commit();

现在我怎么知道两个语句是否都执行成功(两个删除都发生了)?

最佳答案

您的代码应如下所示:

connection.setAutoCommit(false);
ps = DBConnection.prepareStatement(sql);
ps.setString(1, imageID);

ps2 = DBConnection.prepareStatement(sql);
ps2.setString(1, imageID);

int count = ps.executeUpdate();
count += ps2.executeUpdate();

connection.commit();

executeUpdate() 调用返回的计数是事务提交时将受到影响的行数。如果事务回滚,则不会影响任何行。

Now how do I know whether both the statements were executed successfully??

取决于你所说的“执行成功”是什么意思:

  • 如果您的意思是“没有 SQL 错误”之类的意思,那么如果在准备、设置和执行语句中没有 SQL 异常,您就知道它已经发生了。如果任何 SQL 语句失败,事务将无法提交。

  • 如果您的意思是更改已安全地写入磁盘(或其他任何内容),那么如果提交没有引发异常,您就知道它已经发生了。

  • 如果您的意思是变化是您所期望的,那么以上所有内容以及计数都是您所期望的。

关于java - 当我从 Java 在 mySQL 中提交时如何知道删除的行数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28911288/

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