Class DriverManagerConnectionProviderImpl

java.lang.Object
org.hibernate.engine.jdbc.connections.internal.DriverManagerConnectionProviderImpl
All Implemented Interfaces:
Serializable, ConnectionValidator, ConnectionProvider, Service, Configurable, ServiceRegistryAwareService, Stoppable, Wrapped
Direct Known Subclasses:
SharedDriverManagerConnectionProviderImpl

public class DriverManagerConnectionProviderImpl extends Object implements ConnectionProvider, Configurable, Stoppable, ServiceRegistryAwareService, ConnectionValidator
A connection provider that uses the DriverManager directly to open connections and provides a very rudimentary connection pool.
See Also:
Implementation Note:
Not intended for use in production systems!
  • Field Details

  • Constructor Details

    • DriverManagerConnectionProviderImpl

      public DriverManagerConnectionProviderImpl()
  • Method Details

    • injectServices

      public void injectServices(ServiceRegistryImplementor serviceRegistry)
      Description copied from interface: ServiceRegistryAwareService
      Callback to inject the registry.
      Specified by:
      injectServices in interface ServiceRegistryAwareService
      Parameters:
      serviceRegistry - The registry
    • configure

      public void configure(Map<String,Object> configurationValues)
      Description copied from interface: Configurable
      Configure the service.
      Specified by:
      configure in interface Configurable
      Parameters:
      configurationValues - The configuration properties.
    • getConnection

      public Connection getConnection() throws SQLException
      Description copied from interface: ConnectionProvider
      Obtains a connection for Hibernate use according to the underlying strategy of this provider.
      Specified by:
      getConnection in interface ConnectionProvider
      Returns:
      The obtained JDBC connection
      Throws:
      SQLException - Indicates a problem opening a connection
    • closeConnection

      public void closeConnection(Connection connection) throws SQLException
      Description copied from interface: ConnectionProvider
      Release a connection from Hibernate use.
      Specified by:
      closeConnection in interface ConnectionProvider
      Parameters:
      connection - The JDBC connection to release
      Throws:
      SQLException - Indicates a problem closing the connection
    • supportsAggressiveRelease

      public boolean supportsAggressiveRelease()
      Description copied from interface: ConnectionProvider
      Does this connection provider support aggressive release of JDBC connections and later re-acquisition of those connections if needed?

      This is used in conjunction with ConnectionReleaseMode.AFTER_STATEMENT to aggressively release JDBC connections. However, the configured ConnectionProvider must support re-acquisition of the same underlying connection for that semantic to work.

      Typically, this is only true in managed environments where a container tracks connections by transaction or thread.

      Note that JTA semantic depends on the fact that the underlying connection provider does support aggressive release.

      Specified by:
      supportsAggressiveRelease in interface ConnectionProvider
      Returns:
      true if aggressive releasing is supported; false otherwise.
    • getDatabaseConnectionInfo

      public DatabaseConnectionInfo getDatabaseConnectionInfo(Dialect dialect)
      Specified by:
      getDatabaseConnectionInfo in interface ConnectionProvider
    • isUnwrappableAs

      public boolean isUnwrappableAs(Class<?> unwrapType)
      Description copied from interface: Wrapped
      Can this wrapped service be unwrapped as the indicated type?
      Specified by:
      isUnwrappableAs in interface Wrapped
      Parameters:
      unwrapType - The type to check.
      Returns:
      True/false.
    • unwrap

      public <T> T unwrap(Class<T> unwrapType)
      Description copied from interface: Wrapped
      Unproxy the service proxy
      Specified by:
      unwrap in interface Wrapped
      Parameters:
      unwrapType - The java type as which to unwrap this instance.
      Returns:
      The unwrapped reference
    • getOpenConnections

      protected int getOpenConnections()
    • validateConnectionsReturned

      protected void validateConnectionsReturned()
    • validateConnections

      protected void validateConnections(ConnectionValidator validator)
    • stop

      public void stop()
      Description copied from interface: Stoppable
      Stop phase notification
      Specified by:
      stop in interface Stoppable
    • finalize

      protected void finalize() throws Throwable
      Overrides:
      finalize in class Object
      Throws:
      Throwable
    • getConnectionProperties

      public Properties getConnectionProperties()
      Exposed to facilitate testing only.
    • isValid

      public boolean isValid(Connection connection) throws SQLException
      Description copied from interface: ConnectionValidator
      Checks if the given connection is still valid.
      Specified by:
      isValid in interface ConnectionValidator
      Returns:
      true if the connection is valid, false otherwise
      Throws:
      SQLException - when an error happens due to the connection usage leading to a connection close
    • releasePooledConnections

      @Internal public void releasePooledConnections()