org.mariadb.jdbc

## Class MariaDbPoolDataSource

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

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

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

### Constructor Summary

Constructors
Constructor and Description
`MariaDbPoolDataSource()` Default constructor. hostname will be localhost, port 3306.
`MariaDbPoolDataSource(String url)`
`MariaDbPoolDataSource(String hostname, int port, String database)` Constructor.

### 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.
`String` `getDatabaseName()` Gets the name of the database.
`int` `getLoginTimeout()` Gets the maximum time in seconds that this data source can wait while attempting to connect to a database.
`PrintWriter` `getLogWriter()` Retrieves the log writer for this `DataSource` object.
`int` `getMaxIdleTime()`
`int` `getMaxPoolSize()`
`int` `getMinPoolSize()`
`Logger` `getParentLogger()`
`String` `getPoolName()`
`Integer` `getPoolValidMinDelay()`
`int` `getPort()` Returns the port number.
`int` `getPortNumber()` Returns the port number.
`String` `getServerName()` Returns the name of the database server.
`Boolean` `getStaticGlobal()`
`protected UrlParser` `getUrlParser()` For testing purpose only.
`String` `getUser()` Gets the username.
`XAConnection` `getXAConnection()`
`XAConnection` `getXAConnection(String user, String password)`
`void` `initialize()` Initialize pool.
`boolean` `isWrapperFor(Class<?> interfaceOrWrapper)` Returns true if this either implements the interface argument or is directly or indirectly a wrapper for an object that does.
`void` `setDatabaseName(String database)` Sets the database name.
`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)` Sets the log writer for this `DataSource` object to the given `java.io.PrintWriter` object.
`void` `setMaxIdleTime(int maxIdleTime)`
`void` `setMaxPoolSize(int maxPoolSize)`
`void` `setMinPoolSize(int minPoolSize)`
`void` `setPassword(String password)` Sets the password.
`void` `setPoolName(String poolName)`
`void` `setPoolValidMinDelay(Integer poolValidMinDelay)`
`void` `setPort(int port)` Sets the database port.
`void` `setPortNumber(int port)` Sets the port number.
`void` `setServerName(String serverName)` Sets the server name.
`void` `setStaticGlobal(Boolean staticGlobal)`
`void` `setUrl(String url)` Sets the connection string URL.
`void` `setUser(String user)` Sets the username.
`void` `testForceMaxIdleTime(int maxIdleTime)` Permit to create test that doesn't wait for maxIdleTime minimum value of 60 seconds. !!
`List<Long>` `testGetConnectionIdleThreadIds()` Get current idle threads. !!
`Pool` `testGetPool()` Get pool. !!
`<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`

### Constructor Detail

#### MariaDbPoolDataSource

    public MariaDbPoolDataSource(String hostname,
                                 int port,
                                 String database)

Constructor.

Parameters:
  `hostname` - hostname (ipv4, ipv6, dns name)
  `port` - server port
  `database` - database name

#### MariaDbPoolDataSource

    public MariaDbPoolDataSource(String url)
                          throws SQLException

Throws:
  `SQLException`

#### MariaDbPoolDataSource

    public MariaDbPoolDataSource()

Default constructor. hostname will be localhost, port 3306.

### Method Detail

#### getDatabaseName

    public String getDatabaseName()

Gets the name of the database.

Returns:
  the name of the database for this data source

#### setDatabaseName

    public void setDatabaseName(String database)
                         throws SQLException

Sets the database name.

Parameters:
  `database` - the name of the database
Throws:
  `SQLException` - if error in URL

#### getUser

    public String getUser()

Gets the username.

Returns:
  the username to use when connecting to the database

#### setUser

    public void setUser(String user)
                 throws SQLException

Sets the username.

Parameters:
  `user` - the username
Throws:
  `SQLException` - if error in URL

#### setPassword

    public void setPassword(String password)
                     throws SQLException

Sets the password.

Parameters:
  `password` - the password
Throws:
  `SQLException` - if error in URL

#### getPort

    public int getPort()

Returns the port number.

Returns:
  the port number

#### setPort

    public void setPort(int port)
                 throws SQLException

Sets the database port.

Parameters:
  `port` - the port
Throws:
  `SQLException` - if error in URL

#### getPortNumber

    public int getPortNumber()

Returns the port number.

Returns:
  the port number

#### setPortNumber

    public void setPortNumber(int port)
                       throws SQLException

Sets the port number.

Parameters:
  `port` - the port
Throws:
  `SQLException` - if error in URL
See Also:
  `setPort(int)`

#### setUrl

    public void setUrl(String url)
                throws SQLException

Sets the connection string URL.

Parameters:
  `url` - the connection string
Throws:
  `SQLException` - if error in URL

#### getServerName

    public String getServerName()

Returns the name of the database server.

Returns:
  the name of the database server

#### setServerName

    public void setServerName(String serverName)
                       throws SQLException

Sets the server name.

Parameters:
  `serverName` - the server name
Throws:
  `SQLException` - if error in URL

#### 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

#### 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

#### getLogWriter

    public PrintWriter getLogWriter()
                             throws 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.

Specified by:
  `getLogWriter` in interface `CommonDataSource`
Returns:
  the log writer for this data source or null if logging is disabled
Throws:
  `SQLException` - if a database access error occurs
Since:
  1.4
See Also:
  `setLogWriter(java.io.PrintWriter)`

#### setLogWriter

    public void setLogWriter(PrintWriter out)
                      throws 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.

Specified by:
  `setLogWriter` in interface `CommonDataSource`
Parameters:
  `out` - the new log writer; to disable logging, set to null
Throws:
  `SQLException` - if a database access error occurs
Since:
  1.4
See Also:
  `getLogWriter()`

#### getLoginTimeout

    public int getLoginTimeout()
                        throws SQLException

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 zero.

Specified by:
  `getLoginTimeout` in interface `CommonDataSource`
Returns:
  the data source login time limit
Throws:
  `SQLException` - if a database access error occurs.
Since:
  1.4
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 zero.

Specified by:
  `setLoginTimeout` in interface `CommonDataSource`
Parameters:
  `seconds` - the data source login time limit
Throws:
  `SQLException` - if a database access error occurs.
Since:
  1.4
See Also:
  `getLoginTimeout()`

#### 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
Since:
  1.6

#### isWrapperFor

    public boolean isWrapperFor(Class<?> interfaceOrWrapper)
                         throws SQLException

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:
  `interfaceOrWrapper` - a Class defining an interface.
Returns:
  true if this implements the interface or directly or indirectly wraps an object that does.
Throws:
  `SQLException` - if an error occurs while determining whether this is a wrapper for an object with the given interface.
Since:
  1.6

#### getXAConnection

    public XAConnection getXAConnection()
                                 throws SQLException

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

#### getXAConnection

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

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

#### getParentLogger

    public Logger getParentLogger()
                           throws SQLFeatureNotSupportedException

Specified by:
  `getParentLogger` in interface `CommonDataSource`
Throws:
  `SQLFeatureNotSupportedException`

#### getUrlParser

    protected UrlParser getUrlParser()

For testing purpose only.

Returns:
  current url parser.

#### getPoolName

    public String getPoolName()

#### setPoolName

    public void setPoolName(String poolName)
                     throws SQLException

Throws:
  `SQLException`

#### getMaxPoolSize

    public int getMaxPoolSize()

#### setMaxPoolSize

    public void setMaxPoolSize(int maxPoolSize)
                        throws SQLException

Throws:
  `SQLException`

#### getMinPoolSize

    public int getMinPoolSize()

#### setMinPoolSize

    public void setMinPoolSize(int minPoolSize)
                        throws SQLException

Throws:
  `SQLException`

#### getMaxIdleTime

    public int getMaxIdleTime()

#### setMaxIdleTime

    public void setMaxIdleTime(int maxIdleTime)
                        throws SQLException

Throws:
  `SQLException`

#### getStaticGlobal

    public Boolean getStaticGlobal()

#### setStaticGlobal

    public void setStaticGlobal(Boolean staticGlobal)

#### getPoolValidMinDelay

    public Integer getPoolValidMinDelay()

#### setPoolValidMinDelay

    public void setPoolValidMinDelay(Integer poolValidMinDelay)

#### close

    public void close()

Close datasource.

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

#### initialize

    public void initialize()
                    throws SQLException

Initialize pool.

Throws:
  `SQLException` - if connection string has error

#### testGetConnectionIdleThreadIds

    public List<Long> testGetConnectionIdleThreadIds()

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

Returns:
  current thread id's

#### testForceMaxIdleTime

    public void testForceMaxIdleTime(int maxIdleTime)
                              throws SQLException

Permit to create test that doesn't wait for maxIdleTime minimum value of 60 seconds. !! For testing purpose only !!

Parameters:
  `maxIdleTime` - forced value of maxIdleTime option.
Throws:
  `SQLException` - if connection string has error

#### testGetPool

    public Pool testGetPool()

Get pool. !! For testing purpose only !!

Returns:
  pool