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!
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionstatic class
-
Field Summary
FieldsModifier and TypeFieldDescriptionstatic final String
static final String
static final String
static final String
static final String
Fields inherited from interface org.hibernate.engine.jdbc.connections.internal.ConnectionValidator
ALWAYS_VALID
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionvoid
closeConnection
(Connection connection) Release a connection from Hibernate use.void
Configure the service.protected void
finalize()
Obtains a connection for Hibernate use according to the underlying strategy of this provider.getDatabaseConnectionInfo
(Dialect dialect) protected int
void
injectServices
(ServiceRegistryImplementor serviceRegistry) Callback to inject the registry.boolean
isUnwrappableAs
(Class<?> unwrapType) Can this wrapped service be unwrapped as the indicated type?boolean
isValid
(Connection connection) Checks if the given connection is still valid.void
stop()
Stop phase notificationboolean
Does this connection provider support aggressive release of JDBC connections and later re-acquisition of those connections if needed?<T> T
Unproxy the service proxyprotected void
validateConnections
(ConnectionValidator validator) protected void
Methods inherited from class java.lang.Object
clone, equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
Methods 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:ServiceRegistryAwareService
Callback to inject the registry.- Specified by:
injectServices
in interfaceServiceRegistryAwareService
- Parameters:
serviceRegistry
- The registry
-
configure
Description copied from interface:Configurable
Configure the service.- Specified by:
configure
in interfaceConfigurable
- Parameters:
configurationValues
- The configuration properties.
-
getConnection
Description copied from interface:ConnectionProvider
Obtains a connection for Hibernate use according to the underlying strategy of this provider.- Specified by:
getConnection
in interfaceConnectionProvider
- Returns:
- The obtained JDBC connection
- Throws:
SQLException
- Indicates a problem opening a connection
-
closeConnection
Description copied from interface:ConnectionProvider
Release a connection from Hibernate use.- Specified by:
closeConnection
in interfaceConnectionProvider
- 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 configuredConnectionProvider
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 interfaceConnectionProvider
- Returns:
true
if aggressive releasing is supported;false
otherwise.
-
getDatabaseConnectionInfo
- Specified by:
getDatabaseConnectionInfo
in interfaceConnectionProvider
- Returns:
- an informative instance of
DatabaseConnectionInfo
for logging.
-
isUnwrappableAs
Description copied from interface:Wrapped
Can this wrapped service be unwrapped as the indicated type?- Specified by:
isUnwrappableAs
in interfaceWrapped
- Parameters:
unwrapType
- The type to check.- Returns:
- True/false.
-
unwrap
Description copied from interface:Wrapped
Unproxy the service proxy -
getOpenConnections
protected int getOpenConnections() -
validateConnectionsReturned
protected void validateConnectionsReturned() -
validateConnections
-
stop
public void stop()Description copied from interface:Stoppable
Stop phase notification -
finalize
-
isValid
Description copied from interface:ConnectionValidator
Checks if the given connection is still valid.- Specified by:
isValid
in interfaceConnectionValidator
- 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
-