簡體   English   中英

更新准備好的語句未提交

[英]update prepared statement is not commiting

我有以下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不為null)。

關於這里可能發生什么的任何想法?

提交后嘗試關閉您的prepareStatement。 所以改變這個:

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

對此:

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM