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 theDriverManagerdirectly to open connections and provides a very rudimentary connection pool.- See Also:
- Serialized Form
- Implementation Note:
- Not intended for use in production systems!
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static classDriverManagerConnectionProviderImpl.PooledConnections
-
Field Summary
Fields Modifier and Type Field Description static StringCONNECTION_CREATOR_FACTORYstatic StringINIT_SQLstatic StringINITIAL_SIZEstatic StringMIN_SIZEstatic StringVALIDATION_INTERVAL-
Fields inherited from interface org.hibernate.engine.jdbc.connections.internal.ConnectionValidator
ALWAYS_VALID
-
-
Constructor Summary
Constructors Constructor Description DriverManagerConnectionProviderImpl()
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description voidcloseConnection(Connection connection)Release a connection from Hibernate use.voidconfigure(Map<String,Object> configurationValues)Configure the service.protected voidfinalize()ConnectiongetConnection()Obtains a connection for Hibernate use according to the underlying strategy of this provider.PropertiesgetConnectionProperties()Exposed to facilitate testing only.DatabaseConnectionInfogetDatabaseConnectionInfo(Dialect dialect)protected intgetOpenConnections()voidinjectServices(ServiceRegistryImplementor serviceRegistry)Callback to inject the registry.booleanisUnwrappableAs(Class<?> unwrapType)Can this wrapped service be unwrapped as the indicated type?booleanisValid(Connection connection)Checks if the given connection is still valid.voidreleasePooledConnections()voidstop()Stop phase notificationbooleansupportsAggressiveRelease()Does this connection provider support aggressive release of JDBC connections and later re-acquisition of those connections if needed?<T> Tunwrap(Class<T> unwrapType)Unproxy the service proxyprotected voidvalidateConnections(ConnectionValidator validator)protected voidvalidateConnectionsReturned()
-
-
-
Field Detail
-
MIN_SIZE
public static final String MIN_SIZE
- See Also:
- Constant Field Values
-
INITIAL_SIZE
public static final String INITIAL_SIZE
- See Also:
- Constant Field Values
-
VALIDATION_INTERVAL
public static final String VALIDATION_INTERVAL
- See Also:
- Constant Field Values
-
INIT_SQL
public static final String INIT_SQL
- See Also:
- Constant Field Values
-
CONNECTION_CREATOR_FACTORY
public static final String CONNECTION_CREATOR_FACTORY
- See Also:
- Constant Field Values
-
-
Method Detail
-
injectServices
public void injectServices(ServiceRegistryImplementor serviceRegistry)
Description copied from interface:ServiceRegistryAwareServiceCallback to inject the registry.- Specified by:
injectServicesin interfaceServiceRegistryAwareService- Parameters:
serviceRegistry- The registry
-
configure
public void configure(Map<String,Object> configurationValues)
Description copied from interface:ConfigurableConfigure the service.- Specified by:
configurein interfaceConfigurable- Parameters:
configurationValues- The configuration properties.
-
getConnection
public Connection getConnection() throws SQLException
Description copied from interface:ConnectionProviderObtains a connection for Hibernate use according to the underlying strategy of this provider.- Specified by:
getConnectionin interfaceConnectionProvider- 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:ConnectionProviderRelease a connection from Hibernate use.- Specified by:
closeConnectionin interfaceConnectionProvider- Parameters:
connection- The JDBC connection to release- Throws:
SQLException- Indicates a problem closing the connection
-
supportsAggressiveRelease
public boolean supportsAggressiveRelease()
Description copied from interface:ConnectionProviderDoes 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_STATEMENTto aggressively release JDBC connections. However, the configuredConnectionProvidermust 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:
supportsAggressiveReleasein interfaceConnectionProvider- Returns:
trueif aggressive releasing is supported;falseotherwise.
-
getDatabaseConnectionInfo
public DatabaseConnectionInfo getDatabaseConnectionInfo(Dialect dialect)
- Specified by:
getDatabaseConnectionInfoin interfaceConnectionProvider
-
isUnwrappableAs
public boolean isUnwrappableAs(Class<?> unwrapType)
Description copied from interface:WrappedCan this wrapped service be unwrapped as the indicated type?- Specified by:
isUnwrappableAsin interfaceWrapped- Parameters:
unwrapType- The type to check.- Returns:
- True/false.
-
unwrap
public <T> T unwrap(Class<T> unwrapType)
Description copied from interface:WrappedUnproxy the service proxy
-
getOpenConnections
protected int getOpenConnections()
-
validateConnectionsReturned
protected void validateConnectionsReturned()
-
validateConnections
protected void validateConnections(ConnectionValidator validator)
-
stop
public void stop()
Description copied from interface:StoppableStop phase notification
-
finalize
protected void finalize() throws Throwable
-
getConnectionProperties
public Properties getConnectionProperties()
Exposed to facilitate testing only.
-
isValid
public boolean isValid(Connection connection) throws SQLException
Description copied from interface:ConnectionValidatorChecks if the given connection is still valid.- Specified by:
isValidin interfaceConnectionValidator- Returns:
trueif the connection is valid,falseotherwise- Throws:
SQLException- when an error happens due to the connection usage leading to a connection close
-
releasePooledConnections
@Internal public void releasePooledConnections()
-
-