在 MySQL 连接器/J 8.0开发人员指南( MySQL 的JDBC 驱动程序)中,我没有发现任何提及DataSource
JDBC 中接口的实现。
引用DataSource
Javadoc:
DriverManager
作为设施的替代方案,DataSource
对象是获得连接的首选方式。
所以我希望连接器/J 提供一个实现。例如,对于这个 Postgres JDBC 驱动程序DataSource
,我可以在类中找到 的实现PGSimpleDataSource
,如Stack Overflow 上所讨论的。
➥ 没有DataSource
for Connector/J的实现吗?还是我错过了?
有这个页面,6.1 Driver/Datasource Class Name。但是,尽管有标题,但只提到了驱动程序类名,而不是实现的类名DataSource
。
驱动程序有
com.mysql.cj.jdbc.MysqlDataSource
(也有一个ConnectionPoolDataSource
和一个XADataSource
实现)。实际实现MysqlDataSource
直接使用 JDBC 驱动程序,类似于将DriverManager
要执行的操作。MySQL Connector/J 几乎没有提到数据源。事实上,我能找到的唯一参考资料
MysqlDataSource
是在连接器/J API 的更改中。我不确定这是否是 MySQL 文档团队有意识的选择,但MysqlDataSource
直接在您的代码中使用通常没有什么意义(它不提供连接池),并且MysqlConnectionPoolDataSource
不MysqlXADataSource
直接使用,也不是连接池(相反,它们充当提供连接池和/或分布式事务的 Java EE 数据源的连接工厂)。使用 JDBC 的许多方法涉及使用提供连接池的第三方数据源(例如 HikariCP、DBCP、c3p0),而那些通常
DriverManager
直接使用(尽管有些还允许您提供数据源实现)或通过数据源JavaEE/JakartaEE 应用程序服务器。使用这些通常比依赖驱动程序的数据源实现更好。