2013-01-23 52 views
0

我有一个类使用JDBC与SQL Server和INSERT,UPDATE,DELETE和... .NOW是否有可能多个线程使用此类(不是共享对象,每个线程使用此类的新对象)同时访问数据库?可以通过JDBC同时多个线程访问数据库吗?

+0

我会说这取决于数据库,但是如果每个线程都请求自己的连接,那么数据库引擎很可能会拒绝/阻止这些请求,直到它能够处理请求。它也将归结为数据库引擎功能,认为像支持事务 – MadProgrammer

回答

2

是的,这是可能的。

如果每个新对象共享同一个JDBC Connection对象,那么它会降低数据库访问速度。

如果每个新对象都有自己的JDBC连接对象,那么它不会减慢数据库访问速度。但是这会与您的数据库创建多个连接,这会增加数据库的负载。

1

JDBC仅是如何通过Java代码与某些SQL Server进行通信的标准。多线程对JDBC没有任何影响,如果你的代码是线程安全的,当你需要的时候创建事务等等一切都会好的

1

JDBC不是一个类,它是一个标准。但是,可以有多个到数据库的连接(通常是由容器管理的连接池)。每个线程将获得一个连接并对数据库执行操作。事务的使用确保了数据的一致性和完整性。

+0

你是什么意思“由容器管理的连接池”? – Soheil

+1

如果您的应用程序在JEE应用程序服务器(如WebLogic,WebSphere,JBoss)中运行,那么服务器将为您提供一个数据库连接池:这意味着服务器创建多个数据库连接并将它们提供给需要执行的客户端在数据库上执行操作。当客户端不再需要连接时,服务器可以将该连接传递给另一个客户端。由于从头开始建立连接是一项繁重的操作,因此效率更高。 – Bogdan

+0

好信息,thanx – Soheil

相关问题