我有这个 java 代码,不幸的是更新所做的更改没有传播到 mySQL 数据库:
con = DriverManager.getConnection(url, user, password);
con.setAutoCommit(false);
preparedStatement = con.prepareStatement("update schema.t1 inner join
schema.t2 on (t1.id=t2.id)" +
" set t1.a=t2.a, t1.b=t2.b" );
int r = preparedStatement.executeUpdate();
System.out.println("execute update result = "+r);
preparedStatement.close();
con.commit();
con.close;
如果我启用自动提交查询,确实有效;然而,手动提交不会将更改传播到数据库(我手动检查并且没有更新从 schema.t1 中选择 *,其中 a 不为空)。
对这里可能发生的事情有什么想法吗?
最佳答案
尝试在提交后关闭 preparedStatement。所以改变这个:
preparedStatement.close();
con.commit();
对此:
con.commit();
preparedStatement.close();
关于java - 更新准备好的语句未提交,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19098373/