我想知道如何工作方法getConnection()在数据源吗?我假设数据源调用DriverManager.getConnection每次调用DataSource.getConnection时使用我们在DataSource中设置的属性。这是真的吗?
您的问题的答案可以从DataSource
javadoc中推断出来。
"
DataSource
接口由驱动程序供应商实现。有三种类型的实现:
- 基本实现——产生一个标准的
Connection
对象- 连接池实现——生成一个自动参与连接池的
Connection
对象。这- 分布式事务实现——生成一个
Connection
对象,可以用于分布式事务,并且几乎总是参与连接池。此实现与中间层事务管理器,并且几乎总是带有连接池经理。,
:
我想知道
getConnection()
方法如何在DataSource
上工作?
它是特定于供应商的,并且取决于供应商提供的实现类型。
我假设
DataSource
每次调用DataSource.getConnection
时都使用我们在DataSource
中设置的属性调用DriverManager.getConnection
。这是真的吗?
不一定。例如,DataSource.getConnection()
可以在每次调用时返回相同的Connection
对象。或者更合理的情况是,它可以为已回收的底层数据库池连接返回一个新的Connection
代理。此外,DriverManager
方法不一定被调用来获得连接。
如果你想知道一个特定的DataSource
是如何工作的,你需要看看供应商的文档…或者它的源代码。