在我的應用程序中,有多個線程試圖插入到MySQL的 database.Is 的executeUpdate方法線程安全使用?我怎樣才能使這項工作?Java中的executeUpdate方法是線程安全的嗎?
7
A
回答
6
雖然executeUpdate
方法本身可能是線程安全的,但準備好的語句並非旨在同時使用。這是因爲每個實例存儲您的參數,直到executeUpdate
指示它將參數發送到MySQL。此外,由於事務通過Connection
對象進行管理,所以在沒有同步的情況下同時共享連接可能會導致您在提交/回滾時出現不希望的行爲。
爲了使來自多個線程的插入同時工作,每個線程都需要使用自己的Connection
,並製作自己的PreparedStatement
。在同一數據庫上同時使用多個預處理語句是線程安全的,因爲併發性是在RDBMS側進行管理的。
2
Javadoc中沒有任何內容表示Connection,
a PreparedStatement,
或ResultSet
是線程安全的,因此它們的方法都不是。
0
executeUpdate()
對於多線程不是線程安全的。
您可以進行多個連接,以便每個線程都使用自己的JDBC連接到數據庫。
相關問題
- 1. Java:我的方法線程安全嗎?
- 2. java線程安全:線程安全嗎?
- 3. Java方法線程安全
- 4. Java Transport.send()是線程安全的嗎?
- 5. Java中的方法參數是否是線程安全的?
- 6. IntentService的onStartCommand(..)方法線程安全嗎?
- 7. Java - 靜態方法的線程安全
- 8. 線程安全的方法
- 9. 是靜態方法線程安全的
- 10. Java線程getId()線程安全嗎?
- 11. 方法參數線程安全嗎?
- 12. 此方法線程安全嗎?
- 13. 此方法線程安全嗎?
- 14. .NET - Queue.Enqueue方法線程安全嗎?
- 15. C#此方法線程安全嗎?
- 16. NSMutableArray的addObject方法是線程安全的嗎?
- 17. Spring&Tika集成:我的方法是線程安全的嗎?
- 18. JSR-303 - 我的方法是線程安全的嗎?
- 19. 是C#中的CreateDirectory()線程安全嗎?
- 20. 是java.sql.Connection線程安全嗎?
- 21. 是CreateChildContainer()線程安全嗎?
- 22. 是Thread.getStackTrace()線程安全嗎?
- 23. 是DocumentBuilder.parse()線程安全嗎?
- 24. 是javax.sql.DataSource線程安全嗎?
- 25. 是TcpClient.Available線程安全嗎?
- 26. 是sqlite.swift線程安全嗎?
- 27. 是winsock2線程安全嗎?
- 28. 是unique_ptr線程安全嗎?
- 29. 是SplittableRandom.split()線程安全嗎?
- 30. 線程安全(是嗎?)
看到這個.. http://stackoverflow.com/questions/8828202/is-executeupdate-method-in-java-thread-safe – Varun 2013-03-14 05:59:45