Class JDBCPool
- All Implemented Interfaces:
Wrapper, EventListener, Referenceable, CommonDataSource, ConnectionEventListener, DataSource, StatementEventListener
HSQLDB-Specific Information:
A connection pool for HyperSQL connections. This implementation ofDataSource is dedicated to HyperSQL and
guarantees all connection states are automatically reset when a connection
is reused.
The methods of the parent class,
JDBCCommonDataSource are used to specify the database URL, user,
password, and / or connection properties.
- Since:
- HSQLDB 2.2.9
- Author:
- Fred Toussi (fredt@users dot sourceforge.net)
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionvoidclose(int wait) Closes the pool immediately.voidconnectionClosed(ConnectionEvent event) voidRetrieves a new connection using the properties that have already been set.getConnection(String username, String password) Retrieves a new connection using the given username and password, and the database url that has been set.Synonym for getUrl().Synonym for getUrl().Retrieves the name of the data source.Retrieves the description of the data source.intGets the maximum time in seconds that this data source can wait while attempting to connect to a database.Retrieves the log writer for thisDataSourceobject.Return the parent Logger of all the Loggers used by this data source.Retrieves the Reference of this object.getUrl()Retrieves the jdbc database connection url attribute.getURL()Retrieves the jdbc database connection url attribute.getUser()Retrieves the user name for the connection.booleanisWrapperFor(Class<?> iface) Returns true if this either implements the interface argument or is directly or indirectly a wrapper for an object that does.voidsetDatabase(String database) Synonym for setUrl(String).voidsetDatabaseName(String databaseName) Synonym for setUrl(String).voidsetLoginTimeout(int seconds) Sets the maximum time in seconds that this data source will wait while attempting to connect to a database.voidsetLogWriter(PrintWriter out) Sets the log writer for thisDataSourceobject to the givenjava.io.PrintWriterobject.voidsetPassword(String password) Sets the password for the username.voidsetProperties(Properties props) Sets connection properties.voidSets the jdbc database URL.voidSets the jdbc database URL.voidSets the user name.voidstatementClosed(StatementEvent event) void<T> TReturns an object that implements the given interface to allow access to non-standard methods, or standard methods not exposed by the proxy.Methods inherited from class Object
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitMethods inherited from interface CommonDataSource
createShardingKeyBuilderMethods inherited from interface DataSource
createConnectionBuilder
-
Constructor Details
-
JDBCPool
public JDBCPool()Creates a connection pool with the maximum size of 8. The database and connection settings are made before thegetConnection()is called. -
JDBCPool
public JDBCPool(int size) Creates a connection pool with the given maximum size. The database and connection settings are made before thegetConnection()is called.- Parameters:
size- int maximum size of the pool
-
-
Method Details
-
getConnection
Retrieves a new connection using the properties that have already been set.- Specified by:
getConnectionin interfaceDataSource- Returns:
- a connection to the data source
- Throws:
SQLException- if a database access error occurs
-
getConnection
Retrieves a new connection using the given username and password, and the database url that has been set. No other properties are used for the connection. This method can be used only with the same username and password used for the connection pool. The first call to this method sets the user name and password for the connection pool.- Specified by:
getConnectionin interfaceDataSource- Parameters:
username- the database user on whose behalf the connection is being madepassword- the user's password- Returns:
- a connection to the data source
- Throws:
SQLException- if a database access error occurs
-
unwrap
Returns an object that implements the given interface to allow access to non-standard methods, or standard methods not exposed by the proxy. If the receiver implements the interface then the result is the receiver or a proxy for the receiver. If the receiver is a wrapper and the wrapped object implements the interface then the result is the wrapped object or a proxy for the wrapped object. Otherwise return the result of callingunwraprecursively on the wrapped object or a proxy for that result. If the receiver is not a wrapper and does not implement the interface, then anSQLExceptionis thrown.- Specified by:
unwrapin interfaceWrapper- Parameters:
iface- A Class defining an interface that the result must implement.- Returns:
- an object that implements the interface. May be a proxy for the actual implementing object.
- Throws:
SQLException- If no object found that implements the interface- Since:
- JDK 1.6, HSQLDB 2.0
-
isWrapperFor
Returns true if this either implements the interface argument or is directly or indirectly a wrapper for an object that does. Returns false otherwise. If this implements the interface then return true, else if this is a wrapper then return the result of recursively callingisWrapperForon the wrapped object. If this does not implement the interface and is not a wrapper, return false. This method should be implemented as a low-cost operation compared tounwrapso that callers can use this method to avoid expensiveunwrapcalls that may fail. If this method returns true then callingunwrapwith the same argument should succeed.- Specified by:
isWrapperForin interfaceWrapper- Parameters:
iface- a Class defining an interface.- Returns:
- true if this implements the interface or directly or indirectly wraps an object that does.
- Throws:
SQLException- if an error occurs while determining whether this is a wrapper for an object with the given interface.- Since:
- JDK 1.6, HSQLDB 2.0
-
getReference
Retrieves the Reference of this object.- Specified by:
getReferencein interfaceReferenceable- Returns:
- The non-null Reference of this object.
- Throws:
NamingException- If a naming exception was encountered while retrieving the reference.
-
connectionClosed
- Specified by:
connectionClosedin interfaceConnectionEventListener
-
connectionErrorOccurred
- Specified by:
connectionErrorOccurredin interfaceConnectionEventListener
-
statementClosed
- Specified by:
statementClosedin interfaceStatementEventListener
-
statementErrorOccurred
- Specified by:
statementErrorOccurredin interfaceStatementEventListener
-
getLogWriter
Retrieves the log writer for this
DataSourceobject.The log writer is a character output stream to which all logging and tracing messages for this data source will be printed. This includes messages printed by the methods of this object, messages printed by methods of other objects manufactured by this object, and so on. Messages printed to a data source specific log writer are not printed to the log writer associated with the
java.sql.DriverManagerclass. When aDataSourceobject is created, the log writer is initially null; in other words, the default is for logging to be disabled.- Specified by:
getLogWriterin interfaceCommonDataSource- Specified by:
getLogWriterin interfaceDataSource- Returns:
- the log writer for this data source or null if logging is disabled
- Throws:
SQLException- if a database access error occurs- Since:
- 1.4
- See Also:
-
setLogWriter
Sets the log writer for this
DataSourceobject to the givenjava.io.PrintWriterobject.The log writer is a character output stream to which all logging and tracing messages for this data source will be printed. This includes messages printed by the methods of this object, messages printed by methods of other objects manufactured by this object, and so on. Messages printed to a data source- specific log writer are not printed to the log writer associated with the
java.sql.DriverManagerclass. When aDataSourceobject is created the log writer is initially null; in other words, the default is for logging to be disabled.- Specified by:
setLogWriterin interfaceCommonDataSource- Specified by:
setLogWriterin interfaceDataSource- Parameters:
out- the new log writer; to disable logging, set to null- Throws:
SQLException- if a database access error occurs- Since:
- 1.4
- See Also:
-
setLoginTimeout
Sets the maximum time in seconds that this data source will wait while attempting to connect to a database. A value of zero specifies that the timeout is the default system timeout if there is one; otherwise, it specifies that there is no timeout. When a
DataSourceobject is created, the login timeout is initially zero.- Specified by:
setLoginTimeoutin interfaceCommonDataSource- Specified by:
setLoginTimeoutin interfaceDataSource- Parameters:
seconds- the data source login time limit- Throws:
SQLException- if a database access error occurs.- Since:
- 1.4
- See Also:
-
getLoginTimeout
Gets the maximum time in seconds that this data source can wait while attempting to connect to a database. A value of zero means that the timeout is the default system timeout if there is one; otherwise, it means that there is no timeout. When aDataSourceobject is created, the login timeout is initially zero.- Specified by:
getLoginTimeoutin interfaceCommonDataSource- Specified by:
getLoginTimeoutin interfaceDataSource- Returns:
- the data source login time limit
- Throws:
SQLException- if a database access error occurs.- Since:
- 1.4
- See Also:
-
getDescription
Retrieves the description of the data source.- Returns:
- the description
-
getDataSourceName
-
getDatabaseName
Synonym for getUrl().- Returns:
- the jdbc database connection url attribute
-
getDatabase
Synonym for getUrl().- Returns:
- the jdbc database connection url attribute
-
getUrl
Retrieves the jdbc database connection url attribute.- Returns:
- the jdbc database connection url attribute
-
getURL
Retrieves the jdbc database connection url attribute.- Returns:
- the jdbc database connection url attribute
-
getUser
Retrieves the user name for the connection.- Returns:
- the username for the connection
-
setDatabaseName
Synonym for setUrl(String).- Parameters:
databaseName- the new value for the attribute
-
setDatabase
Synonym for setUrl(String).- Parameters:
database- the new value for the attribute
-
setUrl
Sets the jdbc database URL.- Parameters:
url- the new value of this object's jdbc database connection url attribute
-
setURL
Sets the jdbc database URL.- Parameters:
url- the new value of this object's jdbc database connection url attribute
-
setPassword
Sets the password for the username.- Parameters:
password- the password
-
setUser
-
setProperties
Sets connection properties. If user / password / loginTimeout has been set with one of the setXXX() methods it will be added to the Properties object.- Parameters:
props- properties. If null, then existing properties will be cleared/replaced.
-
getParentLogger
Return the parent Logger of all the Loggers used by this data source. This should be the Logger farthest from the root Logger that is still an ancestor of all of the Loggers used by this data source. Configuring this Logger will affect all of the log messages generated by the data source. In the worst case, this may be the root Logger.- Specified by:
getParentLoggerin interfaceCommonDataSource- Returns:
- the parent Logger for this data source
- Throws:
SQLFeatureNotSupportedException- if the data source does not usejava.util.logging.- Since:
- JDK 1.7, HSQLDB 2.2.9
-
close
Closes the pool immediately. Waits the given number of seconds before closing all existing connections in the pool.- Parameters:
wait- int number of seconds to wait before closing the connections, maximum 60 seconds- Throws:
SQLException- on any error
-