更新预准备语句不提交

时间:2013-09-30 15:42:56

标签: java mysql jdbc-odbc

我有这个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)。

关于这里可能发生什么的任何想法?

1 个答案:

答案 0 :(得分:0)

尝试在提交后关闭preparedStatement。所以改变这个:

preparedStatement.close();
con.commit();

对此:

con.commit();
preparedStatement.close();