複数のスレッドが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. UIスレッドでマーシャリングされたメソッドはスレッドセーフである必要があります
- 5. 静的メソッドのスレッドセーフです
- 6. SmtpClient.SendMailAsyncメソッドはスレッドセーフですか?
- 7. 静的メソッドのJava配列はスレッドセーフですか?
- 8. プロトコルの送信メソッドがスレッドセーフであることを保証する方法
- 9. HibernateのsessionFactoryがスレッドセーフである理由
- 10. Java StringBuilderとスレッドセーフ
- 11. Python 2.7:スレッドセーフである
- 12. Javaでsetメソッドとgetメソッドに問題がある
- 13. Hibernate executeUpdate performance
- 14. java配列のスレッドセーフ
- 15. スレッドセーフなJavaのシングルトン
- 16. System.ArrayのSetValue/GetValueメソッドはスレッドセーフですか?
- 17. 拡張メソッドはスレッドセーフですか?
- 18. AndroidのFragmentTransaction.commit()メソッドはスレッドセーフですか?
- 19. この静的メソッドはスレッドセーフですか?
- 20. 静的メソッドはスレッドセーフですか
- 21. IntentServiceのonStartCommand(..)メソッドはスレッドセーフですか?
- 22. この静的Javaメソッドはスレッドセーフではないのはなぜですか?
- 23. 私のIBackingStoreはスレッドセーフである必要がありますか?
- 24. PRNGはスレッドセーフである必要がありますか?
- 25. MongoCollection.forEachはスレッドセーフである必要がありますか?
- 26. OpenCV Detectメソッドをスレッドセーフにするには?
- 27. スケジュールされたメソッドをスレッドセーフにする
- 28. fmdb executeUpdateが失敗します
- 29. DocumentBuilderFactoryはJava 5+でスレッドセーフですか?
- 30. Javaのスレッドセーフ循環バッファ
さらに詳しい情報http://stackoverflow.com/questions/1272453/jdbc-fundamental-concepts-pooling-and-threading –
複数のスレッドがある場合は、複数の接続を使用する必要があります。そのような単純な。 – bestsss
スレッドの安全性について心配することに加えて、同時データベースアクセス(トランザクション)も考慮する必要があります。 –