【问题标题】:Does Mysql driver in itself implements DataSource interface?Mysql驱动本身是否实现了DataSource接口?
【发布时间】:2014-04-20 05:48:57
【问题描述】:

Oracle 的 JDBC 文档说驱动提供者应该实现 DataSource 接口,但在实际项目源文件中,我总是看到 DataSource 来自 3rd,例如 DBCP 连接池。

不知道MySQL驱动本身是否实现了DataSource接口?

【问题讨论】:

    标签: java mysql hibernate jdbc


    【解决方案1】:

    如果您在谈论Connector/J,它提供:

    • com.mysql.jdbc.jdbc2.optional.MysqlDataSource(实现DataSource),
    • com.mysql.jdbc.jdbc2.optional.MysqlConnectionPoolDataSource(实现ConnectionPoolDataSource
    • com.mysql.jdbc.jdbc2.optional.MysqlXADataSource(实现XADataSource

    所以,就您的问题而言。 Connector/J 提供DataSource 接口的实现并符合 JDBC 规范。

    但是,正如您从您的问题和@Piotr 的回答中知道的那样,大多数应用程序永远不会直接处理这些实现。至少在作为 Java 开发人员的十年中,我从未这样做过。让 Java EE App Server 为您处理连接,或者如果您需要独立应用程序,则安装第三方连接池。

    【讨论】:

    • 所以,在它的选项包中,我明白了!谢谢。当然,我将使用第三个连接池!我就是想知道,谢谢!
    【解决方案2】:

    您可以使用 JDBC 驱动程序提供的原生 DataSource,但您通常会使用 DBCP、C3P0 或 BoneCP 等连接池。

    【讨论】:

    • "JDBC驱动提供的native DataSource"什么是native,我是说mysql驱动里面的类名?
    • com.mysql.jdbc.jdbc2.optional.MysqlDataSourcecom.mysql.jdbc.jdbc2.optional.MysqlConnectionPoolDataSourcethe docs
    猜你喜欢
    • 2016-09-29
    • 2018-10-19
    • 2010-09-21
    • 1970-01-01
    • 1970-01-01
    • 2013-04-09
    • 1970-01-01
    • 2019-04-07
    • 2012-12-29
    相关资源
    最近更新 更多