Package org.mariadb.jdbc
Class MariaDbPoolDataSource
- java.lang.Object
-
- org.mariadb.jdbc.MariaDbPoolDataSource
-
- All Implemented Interfaces:
java.io.Closeable,java.lang.AutoCloseable,java.sql.Wrapper,javax.sql.CommonDataSource,javax.sql.ConnectionPoolDataSource,javax.sql.DataSource,javax.sql.XADataSource
public class MariaDbPoolDataSource extends java.lang.Object implements javax.sql.DataSource, javax.sql.ConnectionPoolDataSource, javax.sql.XADataSource, java.io.Closeable, java.lang.AutoCloseableMariaDB pool datasource. This use mariadb internal pool.
-
-
Field Summary
Fields Modifier and Type Field Description private Configurationconfprivate java.lang.IntegerloginTimeoutprivate java.lang.Stringpasswordprivate Poolpoolprivate java.lang.Stringurlprivate java.lang.Stringuser
-
Constructor Summary
Constructors Constructor Description MariaDbPoolDataSource()ConstructorMariaDbPoolDataSource(java.lang.String url)Constructor with url
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description voidclose()Close datasource.private voidconfig()java.sql.ConnectiongetConnection()Attempts to establish a connection with the data source that thisDataSourceobject represents.java.sql.ConnectiongetConnection(java.lang.String username, java.lang.String password)Attempts to establish a connection with the data source that thisDataSourceobject represents.intgetLoginTimeout()Gets the maximum time in seconds that this data source can wait while attempting to connect to a database.java.io.PrintWritergetLogWriter()Implementation doesn't use logwriterjava.util.logging.LoggergetParentLogger()Not implementedjavax.sql.PooledConnectiongetPooledConnection()javax.sql.PooledConnectiongetPooledConnection(java.lang.String username, java.lang.String password)java.lang.StringgetPoolName()get pool namejava.lang.StringgetUrl()Returns the URL for this datasourcejava.lang.StringgetUser()return userjavax.sql.XAConnectiongetXAConnection()javax.sql.XAConnectiongetXAConnection(java.lang.String username, java.lang.String password)booleanisWrapperFor(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.voidsetLoginTimeout(int seconds)Sets the maximum time in seconds that this data source will wait while attempting to connect to a database.voidsetLogWriter(java.io.PrintWriter out)Implementation doesn't use logwritervoidsetPassword(java.lang.String password)set passwordvoidsetUrl(java.lang.String url)Sets the URL for this datasourcevoidsetUser(java.lang.String user)Set userjava.util.List<java.lang.Long>testGetConnectionIdleThreadIds()Get current idle threads.<T> Tunwrap(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.
-
-
-
Field Detail
-
pool
private Pool pool
-
conf
private Configuration conf
-
url
private java.lang.String url
-
user
private java.lang.String user
-
password
private java.lang.String password
-
loginTimeout
private java.lang.Integer loginTimeout
-
-
Method Detail
-
config
private void config() throws java.sql.SQLException- Throws:
java.sql.SQLException
-
getConnection
public java.sql.Connection getConnection() throws java.sql.SQLExceptionAttempts to establish a connection with the data source that thisDataSourceobject represents.- Specified by:
getConnectionin interfacejavax.sql.DataSource- Returns:
- a connection to the data source
- Throws:
java.sql.SQLException- if a database access error occursjava.sql.SQLTimeoutException- when the driver has determined that the timeout value specified by thesetLoginTimeoutmethod has been exceeded and has at least tried to cancel the current database connection attempt
-
getConnection
public java.sql.Connection getConnection(java.lang.String username, java.lang.String password) throws java.sql.SQLExceptionAttempts to establish a connection with the data source that thisDataSourceobject represents.- Specified by:
getConnectionin interfacejavax.sql.DataSource- 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:
java.sql.SQLException- if a database access error occursjava.sql.SQLTimeoutException- when the driver has determined that the timeout value specified by thesetLoginTimeoutmethod has been exceeded and has at least tried to cancel the current database connection attempt
-
unwrap
public <T> T unwrap(java.lang.Class<T> iface) throws java.sql.SQLExceptionReturns 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 calling
unwraprecursively 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 interfacejava.sql.Wrapper- Parameters:
iface- A Class defining an interface that the result must implement.- Returns:
- an object that implements the interface. Maybe a proxy for the actual implementing object.
- Throws:
java.sql.SQLException- If no object found that implements the interface
-
isWrapperFor
public 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. 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 interfacejava.sql.Wrapper- Parameters:
iface- a Class defining an interface.- Returns:
- true if this implements the interface or directly or indirectly wraps an object that does.
-
getLogWriter
public java.io.PrintWriter getLogWriter()
Implementation doesn't use logwriter- Specified by:
getLogWriterin interfacejavax.sql.CommonDataSource- Returns:
- the log writer for this data source or null if logging is disabled
- See Also:
setLogWriter(java.io.PrintWriter)
-
setLogWriter
public void setLogWriter(java.io.PrintWriter out)
Implementation doesn't use logwriter- Specified by:
setLogWriterin interfacejavax.sql.CommonDataSource- Parameters:
out- the new log writer; to disable logging, set to null- See Also:
getLogWriter()
-
getLoginTimeout
public int 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 to 30s.- Specified by:
getLoginTimeoutin interfacejavax.sql.CommonDataSource- Returns:
- the data source login time limit
- See Also:
setLoginTimeout(int)
-
setLoginTimeout
public void setLoginTimeout(int seconds) throws java.sql.SQLExceptionSets 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 aDataSourceobject is created, the login timeout is initially 30s.- Specified by:
setLoginTimeoutin interfacejavax.sql.CommonDataSource- Parameters:
seconds- the data source login time limit- Throws:
java.sql.SQLException- if wrong configuration set- See Also:
getLoginTimeout()
-
getParentLogger
public java.util.logging.Logger getParentLogger()
Not implemented- Specified by:
getParentLoggerin interfacejavax.sql.CommonDataSource- Returns:
- the parent Logger for this data source
-
getPooledConnection
public javax.sql.PooledConnection getPooledConnection() throws java.sql.SQLException- Specified by:
getPooledConnectionin interfacejavax.sql.ConnectionPoolDataSource- Throws:
java.sql.SQLException
-
getPooledConnection
public javax.sql.PooledConnection getPooledConnection(java.lang.String username, java.lang.String password) throws java.sql.SQLException- Specified by:
getPooledConnectionin interfacejavax.sql.ConnectionPoolDataSource- Throws:
java.sql.SQLException
-
getXAConnection
public javax.sql.XAConnection getXAConnection() throws java.sql.SQLException- Specified by:
getXAConnectionin interfacejavax.sql.XADataSource- Throws:
java.sql.SQLException
-
getXAConnection
public javax.sql.XAConnection getXAConnection(java.lang.String username, java.lang.String password) throws java.sql.SQLException- Specified by:
getXAConnectionin interfacejavax.sql.XADataSource- Throws:
java.sql.SQLException
-
getUrl
public java.lang.String getUrl()
Returns the URL for this datasource- Returns:
- the URL for this datasource
-
setUrl
public void setUrl(java.lang.String url) throws java.sql.SQLExceptionSets the URL for this datasource- Parameters:
url- connection string- Throws:
java.sql.SQLException- if url is not accepted
-
getUser
public java.lang.String getUser()
return user- Returns:
- user
-
setUser
public void setUser(java.lang.String user) throws java.sql.SQLExceptionSet user- Parameters:
user- user- Throws:
java.sql.SQLException- if configuration fails
-
setPassword
public void setPassword(java.lang.String password) throws java.sql.SQLExceptionset password- Parameters:
password- password- Throws:
java.sql.SQLException- if configuration fails
-
close
public void close()
Close datasource.- Specified by:
closein interfacejava.lang.AutoCloseable- Specified by:
closein interfacejava.io.Closeable
-
getPoolName
public java.lang.String getPoolName()
get pool name- Returns:
- pool name
-
testGetConnectionIdleThreadIds
public java.util.List<java.lang.Long> testGetConnectionIdleThreadIds()
Get current idle threads. !! For testing purpose only !!- Returns:
- current thread id's
-
-