- All Implemented Interfaces:
Wrapper
,EventListener
,Referenceable
,CommonDataSource
,ConnectionEventListener
,DataSource
,StatementEventListener
HSQLDB-Specific Information:
A connection pool for HyperSQL connections. This implementation of
DataSource
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:
- 2.2.9
- Author:
- Fred Toussi (fredt@users dot sourceforge.net)
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionvoid
close
(int wait) Closes the pool immediately.void
connectionClosed
(ConnectionEvent event) void
Retrieves 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.int
Gets the maximum time in seconds that this data source can wait while attempting to connect to a database.Retrieves the log writer for thisDataSource
object.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.boolean
isWrapperFor
(Class<?> iface) Returns true if this either implements the interface argument or is directly or indirectly a wrapper for an object that does.void
setDatabase
(String database) Synonym for setUrl(String).void
setDatabaseName
(String databaseName) Synonym for setUrl(String).void
setLoginTimeout
(int seconds) Sets the maximum time in seconds that this data source will wait while attempting to connect to a database.void
setLogWriter
(PrintWriter out) Sets the log writer for thisDataSource
object to the givenjava.io.PrintWriter
object.void
setPassword
(String password) Sets the password for the user name.void
setProperties
(Properties props) Sets connection properties.void
Sets the jdbc database URL.void
Sets the jdbc database URL.void
Sets the user name.void
statementClosed
(StatementEvent event) void
<T> T
Returns 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 java.lang.Object
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
Methods inherited from interface javax.sql.CommonDataSource
createShardingKeyBuilder
Methods inherited from interface javax.sql.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:
getConnection
in 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:
getConnection
in 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 callingunwrap
recursively on the wrapped object or a proxy for that result. If the receiver is not a wrapper and does not implement the interface, then anSQLException
is thrown.- Specified by:
unwrap
in 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 callingisWrapperFor
on 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 tounwrap
so that callers can use this method to avoid expensiveunwrap
calls that may fail. If this method returns true then callingunwrap
with the same argument should succeed.- Specified by:
isWrapperFor
in 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:
getReference
in interfaceReferenceable
- Returns:
- The non-null Reference of this object.
- Throws:
NamingException
- If a naming exception was encountered while retrieving the reference.
-
connectionClosed
- Specified by:
connectionClosed
in interfaceConnectionEventListener
-
connectionErrorOccurred
- Specified by:
connectionErrorOccurred
in interfaceConnectionEventListener
-
statementClosed
- Specified by:
statementClosed
in interfaceStatementEventListener
-
statementErrorOccurred
- Specified by:
statementErrorOccurred
in interfaceStatementEventListener
-
getLogWriter
Retrieves the log writer for this
DataSource
object.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.DriverManager
class. When aDataSource
object is created, the log writer is initially null; in other words, the default is for logging to be disabled.- Specified by:
getLogWriter
in interfaceCommonDataSource
- Specified by:
getLogWriter
in 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
DataSource
object to the givenjava.io.PrintWriter
object.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.DriverManager
class. When aDataSource
object is created the log writer is initially null; in other words, the default is for logging to be disabled.- Specified by:
setLogWriter
in interfaceCommonDataSource
- Specified by:
setLogWriter
in 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
DataSource
object is created, the login timeout is initially zero.- Specified by:
setLoginTimeout
in interfaceCommonDataSource
- Specified by:
setLoginTimeout
in 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 aDataSource
object is created, the login timeout is initially zero.- Specified by:
getLoginTimeout
in interfaceCommonDataSource
- Specified by:
getLoginTimeout
in 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
Retrieves the name of the data source.- Returns:
- the description
-
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 user name.- Parameters:
password
- the password
-
setUser
Sets the user name.- Parameters:
user
- the user id
-
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:
getParentLogger
in interfaceCommonDataSource
- Returns:
- the parent Logger for this data source
- Throws:
SQLFeatureNotSupportedException
- if the data source does not usejava.util.logging
.- Since:
- JDK 1.7 M11 2010/09/10 (b123), 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
-