在我的应用程序中,有多个线程试图插入到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中的executeUpdate方法是线程安全的
- 2. Java Transport.send()是线程安全的吗?
- 3. Java - 静态方法的线程安全
- 4. 线程安全的方法
- 5. Java线程getId()线程安全吗?
- 6. .NET - Queue.Enqueue方法线程安全吗?
- 7. 此方法线程安全吗?
- 8. 此方法线程安全吗?
- 9. Spring&Tika集成:我的方法是线程安全的吗?
- 10. 是C#中的CreateDirectory()线程安全吗?
- 11. 的Java:检测到“不是线程安全”的方法
- 12. 是DatagramSocket.send线程安全吗?
- 13. 是TcpClient.Available线程安全吗?
- 14. 线程安全(是吗?)
- 15. 是unique_ptr线程安全吗?
- 16. 是System.DirectoryServices.AccountManagement.GroupPrincipal线程安全吗?
- 17. 是sqlite.swift线程安全吗?
- 18. 是DocumentBuilder.parse()线程安全吗?
- 19. 是Microsoft.Practices.EnterpriseLibrary.Data.Database.SetParameterValue线程安全吗?
- 20. 是长线程安全吗?
- 21. 是javax.sql.DataSource线程安全吗?
- 22. 是java.util.UUID线程安全吗?
- 23. 这是创建Singleton线程安全的方法吗?
- 24. gcc的STL空方法是线程安全吗?
- 25. 是java中的protobuf线程安全的吗?
- 26. Silverlight的CollectionViewSource是线程安全的吗?
- 27. java:是hashmap.put(key,function())中线程安全的函数吗?
- 28. 在Java中,是用于Collections.sort()线程安全的比较器吗?
- 29. DocumentBuilderFactory在Java 5+中是线程安全的吗?
- 30. 是静态方法线程安全
看到这个.. http://stackoverflow.com/questions/8828202/is-executeupdate-method-in-java-thread-safe – Varun 2013-03-14 05:59:45