複数のスレッドがMySQLデータベースを更新しようとしていますか? executeUpdateメソッドはスレッドセーフで使用できますか?JavaスレッドセーフでexecuteUpdateメソッドがある
1
A
答えて
3
はありません、それが使用するスレッドセーフではありませんがデッドロック。
実際には、他のスレッドが文を使用し、別のスレッドがexecuteUpdate()を呼び出すと、他のスレッドのResultSet
がある場合は閉じます。 JavaDoc for java.sql.Statement (of which PreparedStatement is a subtype) "Statementインタフェース内のすべての実行メソッドは、現在のStatementの現在のResultSetオブジェクトが暗黙的に閉じられます。
さらに、executeUpdate()
の実装では、マルチスレッドセーフであるとは考えられません。
ステートメントと結果セットのすべての使用を同期化するか、複数の接続を作成して、各スレッドが独自のJDBC Connection
をデータベースに使用するようにする必要があります。後者をお勧めします。
+0
接続プールを使用しますが、 – jbindel
0
はsynchronizedキーワードを使用してupdateメソッドを作る考慮し、あなたの同時実行スレッドを考える
関連する問題
- 1. JavaのexecuteUpdateメソッドはスレッドセーフなものですか?私のアプリケーションで
- 2. executeUpdateでエラーが発生するJava MySQL
- 3. java mysql executeupdate update
- 4. Javaスレッドセーフ:enumと静的メソッド
- 5. javaスレッドセーフ:スレッドセーフですか?
- 6. UIスレッドでマーシャリングされたメソッドはスレッドセーフである必要があります
- 7. 静的メソッドのスレッドセーフです
- 8. SmtpClient.SendMailAsyncメソッドはスレッドセーフですか?
- 9. Java - JDBC/Swing - executeUpdateがBLOBで動作しない
- 10. 静的メソッドのJava配列はスレッドセーフですか?
- 11. Java StringBuilderとスレッドセーフ
- 12. プロトコルの送信メソッドがスレッドセーフであることを保証する方法
- 13. HibernateのsessionFactoryがスレッドセーフである理由
- 14. executeUpdateメソッドが正常に動作しません
- 15. サーブレットで宣言されたメソッドはスレッドセーフであるか、サーブレットのローカル変数はスレッドセーフです
- 16. Python 2.7:スレッドセーフである
- 17. スレッドセーフなJavaのシングルトン
- 18. java配列のスレッドセーフ
- 19. JavaのExecuteUpdate SQL文が機能しない
- 20. EF6 DBContextの拡張メソッド、スレッドセーフ
- 21. Javaでsetメソッドとgetメソッドに問題がある
- 22. Hibernate executeUpdate performance
- 23. のexecuteUpdate&CURDATE()
- 24. IntentServiceのonStartCommand(..)メソッドはスレッドセーフですか?
- 25. 静的メソッドはスレッドセーフですか
- 26. 拡張メソッドはスレッドセーフですか?
- 27. System.ArrayのSetValue/GetValueメソッドはスレッドセーフですか?
- 28. この静的メソッドはスレッドセーフですか?
- 29. AndroidのFragmentTransaction.commit()メソッドはスレッドセーフですか?
- 30. QTimerのisActive()メソッドはスレッドセーフですか?
さらに詳しい情報http://stackoverflow.com/questions/1272453/jdbc-fundamental-concepts-pooling-and-threading –
複数のスレッドがある場合は、複数の接続を使用する必要があります。そのような単純な。 – bestsss
スレッドの安全性について心配することに加えて、同時データベースアクセス(トランザクション)も考慮する必要があります。 –