Package org.mariadb.jdbc

## Class MariaDbPoolDataSource

- java.lang.Object
- - org.mariadb.jdbc.MariaDbPoolDataSource

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

    public class MariaDbPoolDataSource
    extends Object
    implements DataSource, ConnectionPoolDataSource, XADataSource, Closeable, AutoCloseable

### Constructor Summary

Constructors
`MariaDbPoolDataSource​(String url)`

### Method Summary

All Methods Instance Methods Concrete Methods
`void` `close()` Close datasource.
`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
`InternalPoolConnection` `getPooledConnection()`
`InternalPoolConnection` `getPooledConnection​(String username, String password)`
`String` `getPoolName()`
`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
`List<Long>` `testGetConnectionIdleThreadIds()` Get current idle threads.
`<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 java.lang.Object

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

### Methods inherited from interface javax.sql.CommonDataSource

`createShardingKeyBuilder`

### Methods inherited from interface javax.sql.ConnectionPoolDataSource

`createPooledConnectionBuilder`

### Methods inherited from interface javax.sql.DataSource

`createConnectionBuilder`

### Methods inherited from interface javax.sql.XADataSource

`createXAConnectionBuilder`

### Constructor Detail

#### MariaDbPoolDataSource

    public MariaDbPoolDataSource​(String url)
                          throws SQLException

Throws:
  `SQLException`

### Method Detail

#### 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 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. May be 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(java.io.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)

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
Since:
  1.4
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 InternalPoolConnection getPooledConnection()
                                               throws SQLException

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

#### getPooledConnection

    public InternalPoolConnection 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`

#### close

    public void close()

Close datasource.

Specified by:
  `close` in interface `AutoCloseable`
Specified by:
  `close` in interface `Closeable`

#### getPoolName

    public String getPoolName()

#### testGetConnectionIdleThreadIds

    public List<Long> testGetConnectionIdleThreadIds()

Get current idle threads. !! For testing purpose only !!

Returns:
  current thread id's