MySQL Connector/J 8 中 JDBC DataSource 的實現
在 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 應用程序伺服器。使用這些通常比依賴驅動程序的數據源實現更好。