public class JDBCPool
extends java.lang.Object
implements javax.sql.DataSource, javax.naming.Referenceable, javax.sql.ConnectionEventListener, javax.sql.StatementEventListener, java.sql.Wrapper
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.
Constructor and Description |
---|
JDBCPool()
Creates a connection pool with the maximum size of 8.
|
JDBCPool(int size)
Creates a connection pool with the given maximum size.
|
Modifier and Type | Method and Description |
---|---|
void |
close(int wait)
Closes the pool immediately.
|
void |
connectionClosed(javax.sql.ConnectionEvent event) |
void |
connectionErrorOccurred(javax.sql.ConnectionEvent event) |
java.sql.Connection |
getConnection()
Retrieves a new connection using the properties that have already been
set.
|
java.sql.Connection |
getConnection(java.lang.String username,
java.lang.String password)
Retrieves a new connection using the given username and password,
and the database url that has been set.
|
java.lang.String |
getDatabase()
Synonym for getUrl().
|
java.lang.String |
getDatabaseName()
Synonym for getUrl().
|
java.lang.String |
getDataSourceName()
Retrieves the name of the data source.
|
java.lang.String |
getDescription()
Retrieves the description of the data source.
|
int |
getLoginTimeout()
Gets the maximum time in seconds that this data source can wait
while attempting to connect to a database.
|
java.io.PrintWriter |
getLogWriter()
Retrieves the log writer for this
DataSource
object. |
java.util.logging.Logger |
getParentLogger()
Return the parent Logger of all the Loggers used by this data source.
|
javax.naming.Reference |
getReference()
Retrieves the Reference of this object.
|
java.lang.String |
getUrl()
Retrieves the jdbc database connection url attribute.
|
java.lang.String |
getURL()
Retrieves the jdbc database connection url attribute.
|
java.lang.String |
getUser()
Retrieves the user name for the connection.
|
boolean |
isWrapperFor(java.lang.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(java.lang.String database)
Synonym for setUrl(String).
|
void |
setDatabaseName(java.lang.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(java.io.PrintWriter out)
Sets the log writer for this
DataSource
object to the given java.io.PrintWriter object. |
void |
setPassword(java.lang.String password)
Sets the password for the user name.
|
void |
setProperties(java.util.Properties props)
Sets connection properties.
|
void |
setUrl(java.lang.String url)
Sets the jdbc database URL.
|
void |
setURL(java.lang.String url)
Sets the jdbc database URL.
|
void |
setUser(java.lang.String user)
Sets the user name.
|
void |
statementClosed(javax.sql.StatementEvent event) |
void |
statementErrorOccurred(javax.sql.StatementEvent event) |
<T> T |
unwrap(java.lang.Class<T> iface)
Returns an object that implements the given interface to allow access to
non-standard methods, or standard methods not exposed by the proxy.
|
public JDBCPool()
getConnection()
is called.public JDBCPool(int size)
getConnection()
is called.size
- int maximum size of the poolpublic java.sql.Connection getConnection() throws java.sql.SQLException
getConnection
in interface javax.sql.DataSource
java.sql.SQLException
- if a database access error occurspublic java.sql.Connection getConnection(java.lang.String username, java.lang.String password) throws java.sql.SQLException
getConnection
in interface javax.sql.DataSource
username
- the database user on whose behalf the connection is
being madepassword
- the user's passwordjava.sql.SQLException
- if a database access error occurspublic <T> T unwrap(java.lang.Class<T> iface) throws java.sql.SQLException
unwrap
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 an SQLException
is thrown.unwrap
in interface java.sql.Wrapper
iface
- A Class defining an interface that the result must implement.java.sql.SQLException
- If no object found that implements the interfacepublic boolean isWrapperFor(java.lang.Class<?> iface) throws java.sql.SQLException
isWrapperFor
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 to unwrap
so that
callers can use this method to avoid expensive unwrap
calls that may fail. If this method
returns true then calling unwrap
with the same argument should succeed.isWrapperFor
in interface java.sql.Wrapper
iface
- a Class defining an interface.java.sql.SQLException
- if an error occurs while determining whether this is a wrapper
for an object with the given interface.public javax.naming.Reference getReference() throws javax.naming.NamingException
getReference
in interface javax.naming.Referenceable
javax.naming.NamingException
- If a naming exception was encountered
while retrieving the reference.public void connectionClosed(javax.sql.ConnectionEvent event)
connectionClosed
in interface javax.sql.ConnectionEventListener
public void connectionErrorOccurred(javax.sql.ConnectionEvent event)
connectionErrorOccurred
in interface javax.sql.ConnectionEventListener
public void statementClosed(javax.sql.StatementEvent event)
statementClosed
in interface javax.sql.StatementEventListener
public void statementErrorOccurred(javax.sql.StatementEvent event)
statementErrorOccurred
in interface javax.sql.StatementEventListener
public java.io.PrintWriter getLogWriter() throws java.sql.SQLException
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 a
DataSource
object is
created, the log writer is initially null; in other words, the
default is for logging to be disabled.
getLogWriter
in interface javax.sql.CommonDataSource
java.sql.SQLException
- if a database access error occurssetLogWriter(java.io.PrintWriter)
public void setLogWriter(java.io.PrintWriter out) throws java.sql.SQLException
Sets the log writer for this DataSource
object to the given java.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 a
DataSource
object is created the log writer is
initially null; in other words, the default is for logging to be
disabled.
setLogWriter
in interface javax.sql.CommonDataSource
out
- the new log writer; to disable logging, set to nulljava.sql.SQLException
- if a database access error occursgetLogWriter()
public void setLoginTimeout(int seconds) throws java.sql.SQLException
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.
setLoginTimeout
in interface javax.sql.CommonDataSource
seconds
- the data source login time limitjava.sql.SQLException
- if a database access error occurs.getLoginTimeout()
public int getLoginTimeout() throws java.sql.SQLException
DataSource
object is created, the login timeout is
initially zero.getLoginTimeout
in interface javax.sql.CommonDataSource
java.sql.SQLException
- if a database access error occurs.setLoginTimeout(int)
public java.lang.String getDescription()
public java.lang.String getDataSourceName()
public java.lang.String getDatabaseName()
public java.lang.String getDatabase()
public java.lang.String getUrl()
public java.lang.String getURL()
public java.lang.String getUser()
public void setDatabaseName(java.lang.String databaseName)
databaseName
- the new value for the attributepublic void setDatabase(java.lang.String database)
database
- the new value for the attributepublic void setUrl(java.lang.String url)
url
- the new value of this object's jdbc database connection
url attributepublic void setURL(java.lang.String url)
url
- the new value of this object's jdbc database connection
url attributepublic void setPassword(java.lang.String password)
password
- the passwordpublic void setUser(java.lang.String user)
user
- the user idpublic void setProperties(java.util.Properties props)
props
- properties. If null, then existing properties will be
cleared/replaced.public java.util.logging.Logger getParentLogger() throws java.sql.SQLFeatureNotSupportedException
getParentLogger
in interface javax.sql.CommonDataSource
java.sql.SQLFeatureNotSupportedException
- if the data source does not use java.util.logging
.public void close(int wait) throws java.sql.SQLException
wait
- int number of seconds to wait before closing the connections, maximum 60 secondsjava.sql.SQLException
- on any errorCopyright © 2001 - 2017 HSQL Development Group.