# Class MariaDbDataSource

java.lang.Object
org.mariadb.jdbc.MariaDbDataSource

All Implemented Interfaces:
  `Wrapper, CommonDataSource, ConnectionPoolDataSource, DataSource, XADataSource`

public class MariaDbDataSource extends Object implements DataSource, ConnectionPoolDataSource, XADataSource
MariaDB basic datasource

## Constructor Summary

Constructors
Constructor
Description
`MariaDbDataSource()`
Basic constructor
`MariaDbDataSource(String url)`
Constructor with URL

## Method Summary

Modifier and Type
Method
Description
`Connection`
`getConnection()`
Attempts to establish a connection with the data source that this `DataSource` object represents.
`Connection`
`getConnection(String username, String password)`
Attempts to establish a connection with the data source that this `DataSource` object represents.
`int`
`getLoginTimeout()`
Gets the maximum time in seconds that this data source can wait while attempting to connect to a database.
`PrintWriter`
`getLogWriter()`
Implementation doesn't use logwriter
`Logger`
`getParentLogger()`
Not implemented
`PooledConnection`
`getPooledConnection()`
`PooledConnection`
`getPooledConnection(String username, String password)`
`String`
`getUrl()`
Returns the URL for this datasource
`String`
`getUser()`
get User
`XAConnection`
`getXAConnection()`
`XAConnection`
`getXAConnection(String username, String password)`
`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`
`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)`
Implementation doesn't use logwriter
`void`
`setPassword(String password)`
Set password
`void`
`setUrl(String url)`
Sets the URL for this datasource
`void`
`setUser(String user)`
Set user
`<T> T`
`unwrap(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.

### Methods inherited from class Object

`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

### Methods inherited from interface CommonDataSource

`createShardingKeyBuilder`

### Methods inherited from interface ConnectionPoolDataSource

`createPooledConnectionBuilder`

### Methods inherited from interface DataSource

`createConnectionBuilder`

### Methods inherited from interface XADataSource

`createXAConnectionBuilder`

## Constructor Details

### MariaDbDataSource

public MariaDbDataSource()
Basic constructor

### MariaDbDataSource

public MariaDbDataSource(String url) throws SQLException
Constructor with URL

Parameters:
  `url` - connection string
Throws:
  `SQLException` - if url is not supported

## Method Details

### getConnection

public Connection getConnection() throws SQLException
Attempts to establish a connection with the data source that this `DataSource` object represents.

Specified by:
  `getConnection` in interface `DataSource`
Returns:
  a connection to the data source
Throws:
  `SQLException` - if a database access error occurs
  `SQLTimeoutException` - when the driver has determined that the timeout value specified by the `setLoginTimeout` method has been exceeded and has at least tried to cancel the current database connection attempt

### getConnection

public Connection getConnection(String username, String password) throws SQLException
Attempts to establish a connection with the data source that this `DataSource` object represents.

Specified by:
  `getConnection` in interface `DataSource`
Parameters:
  `username` - the database user on whose behalf the connection is being made
  `password` - the user's password
Returns:
  a connection to the data source
Throws:
  `SQLException` - if a database access error occurs
  `SQLTimeoutException` - when the driver has determined that the timeout value specified by the `setLoginTimeout` method has been exceeded and has at least tried to cancel the current database connection attempt

### unwrap

public <T> T unwrap(Class<T> iface) throws 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 an `SQLException` is thrown.

Specified by:
  `unwrap` in interface `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:
  `SQLException` - If no object found that implements the interface

### isWrapperFor

public 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. Returns false otherwise. If this implements the interface then return true, else if this is a wrapper then return the result of recursively calling `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.

Specified by:
  `isWrapperFor` in interface `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 PrintWriter getLogWriter()
Implementation doesn't use logwriter

Specified by:
  `getLogWriter` in interface `CommonDataSource`
Specified by:
  `getLogWriter` in interface `ConnectionPoolDataSource`
Specified by:
  `getLogWriter` in interface `DataSource`
Specified by:
  `getLogWriter` in interface `XADataSource`
Returns:
  the log writer for this data source or null if logging is disabled
See Also:
  - `setLogWriter(PrintWriter)`

### setLogWriter

public void setLogWriter(PrintWriter out)
Implementation doesn't use logwriter

Specified by:
  `setLogWriter` in interface `CommonDataSource`
Specified by:
  `setLogWriter` in interface `ConnectionPoolDataSource`
Specified by:
  `setLogWriter` in interface `DataSource`
Specified by:
  `setLogWriter` in interface `XADataSource`
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 a `DataSource` object is created, the login timeout is initially to 30s.

Specified by:
  `getLoginTimeout` in interface `CommonDataSource`
Specified by:
  `getLoginTimeout` in interface `ConnectionPoolDataSource`
Specified by:
  `getLoginTimeout` in interface `DataSource`
Specified by:
  `getLoginTimeout` in interface `XADataSource`
Returns:
  the data source login time limit
See Also:
  - `setLoginTimeout(int)`

### setLoginTimeout

public void setLoginTimeout(int seconds) throws 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 30s.

Specified by:
  `setLoginTimeout` in interface `CommonDataSource`
Specified by:
  `setLoginTimeout` in interface `ConnectionPoolDataSource`
Specified by:
  `setLoginTimeout` in interface `DataSource`
Specified by:
  `setLoginTimeout` in interface `XADataSource`
Parameters:
  `seconds` - the data source login time limit
Throws:
  `SQLException` - if wrong configuration set
See Also:
  - `getLoginTimeout()`

### getParentLogger

public Logger getParentLogger()
Not implemented

Specified by:
  `getParentLogger` in interface `CommonDataSource`
Returns:
  the parent Logger for this data source

### getPooledConnection

public PooledConnection getPooledConnection() throws SQLException

Specified by:
  `getPooledConnection` in interface `ConnectionPoolDataSource`
Throws:
  `SQLException`

### getPooledConnection

public PooledConnection getPooledConnection(String username, String password) throws SQLException

Specified by:
  `getPooledConnection` in interface `ConnectionPoolDataSource`
Throws:
  `SQLException`

### getXAConnection

public XAConnection getXAConnection() throws SQLException

Specified by:
  `getXAConnection` in interface `XADataSource`
Throws:
  `SQLException`

### getXAConnection

public XAConnection getXAConnection(String username, String password) throws SQLException

Specified by:
  `getXAConnection` in interface `XADataSource`
Throws:
  `SQLException`

### getUrl

public String getUrl()
Returns the URL for this datasource

Returns:
  the URL for this datasource

### setUrl

public void setUrl(String url) throws SQLException
Sets the URL for this datasource

Parameters:
  `url` - connection string
Throws:
  `SQLException` - if url is not accepted

### getUser

public String getUser()
get User

Returns:
  user

### setUser

public void setUser(String user) throws SQLException
Set user

Parameters:
  `user` - user
Throws:
  `SQLException` - if wrong resulting connection string

### setPassword

public void setPassword(String password) throws SQLException
Set password

Parameters:
  `password` - password
Throws:
  `SQLException` - if wrong configuration