多线程中的java.sql.Connection

时间:2012-12-20 08:31:56

标签: java multithreading java-ee singleton

  

可能重复:
  Is java.sql.Connection thread safe?

多个线程可以使用相同的java.sql.Connection同时向数据库发送查询吗?所有线程都会同时使用该连接。

如果从单例类获得连接,上述情况是否仍然可以?

2 个答案:

答案 0 :(得分:2)

是的,这是可能的,但我建议您实现一些连接池 - c3p0是非常受欢迎的选项。

答案 1 :(得分:1)

不,java.sql.Connection不是线程安全的。想象一个线程发出命令,而另一个命令执行回滚。即使它完全有效,上一个命令也会回滚。或者一个线程执行命令而另一个线程关闭连接。

然而!创建多个连接没有问题! SQL服务器旨在处理大量异步连接。不要重新发明轮子并在应用程序中同步数据库访问,而是使用数据库本身中的同步机制。