gpt4 book ai didi

mysql - 回滚事务无法正常工作

转载 作者:搜寻专家 更新时间:2023-10-30 19:52:28 24 4
gpt4 key购买 nike

在插入、更新或删除等数据库操作命令中,有时会因无效数据而抛出异常。为了保护应用程序数据的完整性,我们必须确保在事务失败时我们必须回滚

  PreparedStatement ps = null;
Connection conn = null;
try {
conn = DriverManager.getConnection( URL, USERNAME, PASSWORD );

String query = "INSERT INTO tbl1(id, username) " +
"VALUES (?, ?)";
ps = conn.prepareStatement( query );
ps.setString( 1, "javaduke" );
ps.execute();

query = "INSERT INTO tbl2 (id, tbl1_id, " +
"quantity, price) VALUES (?, ?, ?, ?)";
ps = conn.prepareStatement( query );
ps.setInt( 1, id );
ps.setInt( 2, tbl_id );
ps.setInt( 3, 10 );
ps.setDouble( 4, 29.99 );
ps.execute();
}
catch ( SQLException e )
{
conn.rollback()
e.printStackTrace();
}

最佳答案

我猜这是 Java。

在获得连接对象后,立即关闭自动提交,就像这样。

  conn = DriverManager.getConnection( URL, USERNAME, PASSWORD );
conn.setAutoCommit(false);

在您最后一次 execute() 之后执行此操作。

  conn.commit();

那么异常处理程序中的 rollback() 应该会执行您期望的操作。

这应该将您的事务范围扩展到单个 SQL 查询之外。

关于mysql - 回滚事务无法正常工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58487657/

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