JDBC数据源是如何工作的?



我想知道如何工作方法getConnection()在数据源吗?我假设数据源调用DriverManager.getConnection每次调用DataSource.getConnection时使用我们在DataSource中设置的属性。这是真的吗?

您的问题的答案可以从DataSourcejavadoc中推断出来。

"DataSource接口由驱动程序供应商实现。有三种类型的实现:

  • 基本实现——产生一个标准的Connection对象
  • 连接池实现——生成一个自动参与连接池的Connection对象。这
  • 分布式事务实现——生成一个Connection对象,可以用于分布式事务,并且几乎总是参与连接池。此实现与中间层事务管理器,并且几乎总是带有连接池经理。,

:

我想知道getConnection()方法如何在DataSource上工作?

它是特定于供应商的,并且取决于供应商提供的实现类型。

我假设DataSource每次调用DataSource.getConnection时都使用我们在DataSource中设置的属性调用DriverManager.getConnection。这是真的吗?

不一定。例如,DataSource.getConnection()可以在每次调用时返回相同的Connection对象。或者更合理的情况是,它可以为已回收的底层数据库池连接返回一个新的Connection代理。此外,DriverManager方法不一定被调用来获得连接。

如果你想知道一个特定的DataSource是如何工作的,你需要看看供应商的文档…或者它的源代码。

最新更新