我有这个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;
如果我启用自动提交查询,确实有效;但是,手动提交不会将更改传播到数据库(我手动检查并且不进行更新select * from schema.t1,其中a不为null)。
关于这里可能发生什么的任何想法?
答案 0 :(得分:0)
尝试在提交后关闭preparedStatement。所以改变这个:
preparedStatement.close();
con.commit();
对此:
con.commit();
preparedStatement.close();