Class DriverManagerConnectionProviderImpl
java.lang.Object
org.hibernate.engine.jdbc.connections.internal.DriverManagerConnectionProviderImpl
- All Implemented Interfaces:
Serializable,ConnectionValidator,ConnectionProvider,Service,Configurable,ServiceRegistryAwareService,Stoppable,Wrapped
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 Summary
FieldsModifier and TypeFieldDescriptionstatic final Stringstatic final Stringstatic final Stringstatic final Stringstatic final StringFields inherited from interface org.hibernate.engine.jdbc.connections.internal.ConnectionValidator
ALWAYS_VALID -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionvoidcloseConnection(Connection connection) Release a connection from Hibernate use.voidConfigure the service.protected voidfinalize()Obtains a connection for Hibernate use according to the underlying strategy of this provider.getDatabaseConnectionInfo(Dialect dialect) protected intvoidinjectServices(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.voidstop()Stop phase notificationbooleanDoes this connection provider support aggressive release of JDBC connections and later re-acquisition of those connections if needed?<T> TUnproxy the service proxyprotected voidvalidateConnections(ConnectionValidator validator) protected voidMethods inherited from class java.lang.Object
clone, equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitMethods inherited from interface org.hibernate.engine.jdbc.connections.spi.ConnectionProvider
getDatabaseConnectionInfo
-
Field Details
-
MIN_SIZE
- See Also:
-
INITIAL_SIZE
- See Also:
-
VALIDATION_INTERVAL
- See Also:
-
INIT_SQL
- See Also:
-
CONNECTION_CREATOR_FACTORY
- See Also:
-
-
Constructor Details
-
DriverManagerConnectionProviderImpl
public DriverManagerConnectionProviderImpl()
-
-
Method Details
-
injectServices
Description copied from interface:ServiceRegistryAwareServiceCallback to inject the registry.- Specified by:
injectServicesin interfaceServiceRegistryAwareService- Parameters:
serviceRegistry- The registry
-
configure
Description copied from interface:ConfigurableConfigure the service.- Specified by:
configurein interfaceConfigurable- Parameters:
configurationValues- The configuration properties.
-
getConnection
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
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
- Specified by:
getDatabaseConnectionInfoin interfaceConnectionProvider- Returns:
- an informative instance of
DatabaseConnectionInfofor logging.
-
isUnwrappableAs
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
Description copied from interface:WrappedUnproxy the service proxy -
getOpenConnections
protected int getOpenConnections() -
validateConnectionsReturned
protected void validateConnectionsReturned() -
validateConnections
-
stop
public void stop()Description copied from interface:StoppableStop phase notification -
finalize
-
isValid
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
-