如何在手动提交JDBC连接上逐个成功检查多个(两个)PreparedStatement执行

时间:2016-11-06 07:34:06

标签: java mysql jdbc transactions commit

我有两个表格(saleitembalance),当客户购买任何商品时,必须将其插入saleitem并从balance中扣除。

所以我创建了一个手动提交连接,如果所有语句都正常,我提交连接。

第一个SQL语句是saleitem的简单INSERT,第二个SQL语句是带有条件的UPDATE:

UPDATE balance SET amount = amount - ? WHERE walletid = ? AND userid = ? AND amount >= ?;

当我有自动提交连接时,我可以检查preparedStatement.executeUpdate()是否超过0

但是当我手动提交连接时,这不起作用。

现在,如果我将新的促销项目插入saleitem表,并且用户的钱包中没有钱(balance表中),则会插入saleitem但是余额未更新。

如果余额不足或walletid不存在,我不想进行插入和更新,但rollback()此次交易

如何检查多个SQL语句的持久性成功,然后在手动提交连接时提交它们?

0 个答案:

没有答案
相关问题