Package org.mariadb.jdbc
Class MariaDbDataSource
- java.lang.Object
-
- org.mariadb.jdbc.MariaDbDataSource
-
- All Implemented Interfaces:
java.sql.Wrapper
,javax.sql.CommonDataSource
,javax.sql.ConnectionPoolDataSource
,javax.sql.DataSource
,javax.sql.XADataSource
public class MariaDbDataSource extends java.lang.Object implements javax.sql.DataSource, javax.sql.ConnectionPoolDataSource, javax.sql.XADataSource
MariaDB basic datasource
-
-
Field Summary
Fields Modifier and Type Field Description private Configuration
conf
configurationprivate java.lang.Integer
loginTimeout
connect timeoutprivate java.lang.String
password
passwordprivate java.lang.String
url
url permitting creating configurationprivate java.lang.String
user
username
-
Constructor Summary
Constructors Constructor Description MariaDbDataSource()
Basic constructorMariaDbDataSource(java.lang.String url)
Constructor with URL
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description private void
config()
Create configuration from url/user/password/loginTimeoutjava.sql.Connection
getConnection()
Attempts to establish a connection with the data source that thisDataSource
object represents.java.sql.Connection
getConnection(java.lang.String username, java.lang.String password)
Attempts to establish a connection with the data source that thisDataSource
object represents.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()
Implementation doesn't use logwriterjava.util.logging.Logger
getParentLogger()
Not implementedjavax.sql.PooledConnection
getPooledConnection()
javax.sql.PooledConnection
getPooledConnection(java.lang.String username, java.lang.String password)
java.lang.String
getUrl()
Returns the URL for this datasourcejava.lang.String
getUser()
get Userjavax.sql.XAConnection
getXAConnection()
javax.sql.XAConnection
getXAConnection(java.lang.String username, java.lang.String password)
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.private void
setConnectionCloseListener(MariaDbPoolConnection mariaDbPoolConnection)
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)
Implementation doesn't use logwritervoid
setPassword(java.lang.String password)
Set passwordvoid
setUrl(java.lang.String url)
Sets the URL for this datasourcevoid
setUser(java.lang.String user)
Set user<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.
-
-
-
Field Detail
-
conf
private Configuration conf
configuration
-
url
private java.lang.String url
url permitting creating configuration
-
user
private java.lang.String user
username
-
password
private java.lang.String password
password
-
loginTimeout
private java.lang.Integer loginTimeout
connect timeout
-
-
Method Detail
-
config
private void config() throws java.sql.SQLException
Create configuration from url/user/password/loginTimeout- Throws:
java.sql.SQLException
- if not supported
-
getConnection
public java.sql.Connection getConnection() throws java.sql.SQLException
Attempts to establish a connection with the data source that thisDataSource
object represents.- Specified by:
getConnection
in 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 thesetLoginTimeout
method 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.SQLException
Attempts to establish a connection with the data source that thisDataSource
object represents.- Specified by:
getConnection
in 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 thesetLoginTimeout
method 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.SQLException
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 calling
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 anSQLException
is thrown.- Specified by:
unwrap
in 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 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 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:
getLogWriter
in 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:
setLogWriter
in 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 aDataSource
object is created, the login timeout is initially to 30s.- Specified by:
getLoginTimeout
in interfacejavax.sql.CommonDataSource
- Returns:
- the data source login time limit
- See Also:
setLoginTimeout(int)
-
setLoginTimeout
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 aDataSource
object is created, the login timeout is initially 30s.- Specified by:
setLoginTimeout
in 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:
getParentLogger
in interfacejavax.sql.CommonDataSource
- Returns:
- the parent Logger for this data source
-
getPooledConnection
public javax.sql.PooledConnection getPooledConnection() throws java.sql.SQLException
- Specified by:
getPooledConnection
in 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:
getPooledConnection
in interfacejavax.sql.ConnectionPoolDataSource
- Throws:
java.sql.SQLException
-
setConnectionCloseListener
private void setConnectionCloseListener(MariaDbPoolConnection mariaDbPoolConnection)
-
getXAConnection
public javax.sql.XAConnection getXAConnection() throws java.sql.SQLException
- Specified by:
getXAConnection
in 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:
getXAConnection
in 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.SQLException
Sets the URL for this datasource- Parameters:
url
- connection string- Throws:
java.sql.SQLException
- if url is not accepted
-
getUser
public java.lang.String getUser()
get User- Returns:
- user
-
setUser
public void setUser(java.lang.String user) throws java.sql.SQLException
Set user- Parameters:
user
- user- Throws:
java.sql.SQLException
- if wrong resulting connection string
-
setPassword
public void setPassword(java.lang.String password) throws java.sql.SQLException
Set password- Parameters:
password
- password- Throws:
java.sql.SQLException
- if wrong configuration
-
-