DataSource or ConnectionPoolDataSource for Application Server JDBC resources

后端 未结 3 2025
别跟我提以往
别跟我提以往 2020-12-08 15:24

When creating JNDI JDBC connection pools in an application server, I always specified the type as javax.sql.ConnectionPoolDataSource. I never really gave it to

3条回答
  •  星月不相逢
    2020-12-08 15:45

    As for the Java docs it contains this:

    DataSource Java 7 API

    The DataSource interface is implemented by a driver vendor. There are three types of implementations:

    Basic implementation -- produces a standard Connection object

    Connection pooling implementation -- produces a Connection object that will automatically participate in connection pooling. This implementation works with a middle-tier connection pooling manager.

    Distributed transaction implementation -- produces a Connection object that may be used for distributed transactions and almost always participates in connection pooling. This implementation works with a middle-tier transaction manager and almost always with a connection pooling manager.

    PooledConnection Java 7 API

    An application programmer does not use the PooledConnection interface directly; rather, it is used by a middle tier infrastructure that manages the pooling of connections.

    When an application calls the method DataSource.getConnection, it gets back a Connection object. If connection pooling is being done, that Connection object is actually a handle to a PooledConnection object, which is a physical connection.

    The connection pool manager, typically the application server, maintains a pool of PooledConnection objects ....

    So in the end you just use DataSource and Connection classes and never PooledConnection / ConnectionPoolDataSource, if you are a happy and normal programmer.

    If are implementing an Application Server that's another story...

提交回复
热议问题