Package org.mariadb.jdbc

## Class Connection

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

All Implemented Interfaces:
  `AutoCloseable`, `Connection`, `Wrapper`

    public class Connection
    extends Object
    implements Connection

Public Connection class

### Field Summary

### Fields inherited from interface java.sql.Connection

`TRANSACTION_NONE, TRANSACTION_READ_COMMITTED, TRANSACTION_READ_UNCOMMITTED, TRANSACTION_REPEATABLE_READ, TRANSACTION_SERIALIZABLE`

### Constructor Summary

Constructors
`Connection​(Configuration conf, ClosableLock lock, org.mariadb.jdbc.client.Client client)` Connection construction.

### Method Summary

All Methods Instance Methods Concrete Methods
`String` `__test_host()` for _TEST_ only
`void` `abort​(Executor executor)`
`void` `cancelCurrentQuery()` Cancels the current query - clones the current protocol and executes a query using the new connection.
`void` `clearWarnings()`
`void` `close()`
`void` `commit()`
`Array` `createArrayOf​(String typeName, Object[] elements)`
`Blob` `createBlob()`
`Clob` `createClob()`
`NClob` `createNClob()`
`SQLXML` `createSQLXML()`
`Statement` `createStatement()`
`Statement` `createStatement​(int resultSetType, int resultSetConcurrency)`
`Statement` `createStatement​(int resultSetType, int resultSetConcurrency, int resultSetHoldability)`
`Struct` `createStruct​(String typeName, Object[] attributes)`
`void` `fireStatementClosed​(PreparedStatement prep)` Fire event to indicate to StatementEventListeners registered on the connection that a PreparedStatement is closed.
`boolean` `getAutoCommit()`
`String` `getCatalog()`
`org.mariadb.jdbc.client.Client` `getClient()` Associate connection client
`Properties` `getClientInfo()`
`String` `getClientInfo​(String name)`
`org.mariadb.jdbc.client.Context` `getContext()` Connection context.
`protected ExceptionFactory` `getExceptionFactory()` Get connection exception factory
`int` `getHoldability()`
`protected ClosableLock` `getLock()` Internal : retrieve internal ClosableLock
`int` `getLowercaseTableNames()` Are table case-sensitive or not .
`DatabaseMetaData` `getMetaData()`
`int` `getNetworkTimeout()`
`String` `getSchema()`
`long` `getThreadId()` Current server thread id.
`int` `getTransactionIsolation()`
`Map<String,​Class<?>>` `getTypeMap()`
`SQLWarning` `getWarnings()`
`QueryTimeoutHandler` `handleTimeout​(int queryTimeout)` Return a QueryTimeoutHandler for old server that don't support Statement timeout.
`boolean` `isClosed()`
`boolean` `isReadOnly()`
`boolean` `isValid​(int timeout)`
`boolean` `isWrapperFor​(Class<?> iface)`
`String` `nativeSQL​(String sql)`
`CallableStatement` `prepareCall​(String sql)`
`CallableStatement` `prepareCall​(String sql, int resultSetType, int resultSetConcurrency)`
`CallableStatement` `prepareCall​(String sql, int resultSetType, int resultSetConcurrency, int resultSetHoldability)`
`PreparedStatement` `prepareInternal​(String sql, int autoGeneratedKeys, int resultSetType, int resultSetConcurrency, boolean useBinary)` Prepare statement creation
`PreparedStatement` `prepareStatement​(String sql)`
`PreparedStatement` `prepareStatement​(String sql, int autoGeneratedKeys)`
`PreparedStatement` `prepareStatement​(String sql, int[] columnIndexes)`
`PreparedStatement` `prepareStatement​(String sql, int resultSetType, int resultSetConcurrency)`
`PreparedStatement` `prepareStatement​(String sql, int resultSetType, int resultSetConcurrency, int resultSetHoldability)`
`PreparedStatement` `prepareStatement​(String sql, String[] columnNames)`
`void` `releaseSavepoint​(Savepoint savepoint)`
`void` `reset()` Reset connection set has it was after creating a "fresh" new connection.
`void` `rollback()`
`void` `rollback​(Savepoint savepoint)`
`void` `setAutoCommit​(boolean autoCommit)`
`void` `setCatalog​(String catalog)`
`void` `setClientInfo​(String name, String value)`
`void` `setClientInfo​(Properties properties)`
`void` `setHoldability​(int holdability)`
`void` `setNetworkTimeout​(Executor executor, int milliseconds)`
`void` `setPoolConnection​(MariaDbPoolConnection poolConnection)` Internal method.
`void` `setReadOnly​(boolean readOnly)`
`Savepoint` `setSavepoint()`
`Savepoint` `setSavepoint​(String name)`
`void` `setSchema​(String schema)`
`void` `setTransactionIsolation​(int level)`
`void` `setTypeMap​(Map<String,​Class<?>> map)`
`<T> T` `unwrap​(Class<T> iface)`

### Methods inherited from class java.lang.Object

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

### Methods inherited from interface java.sql.Connection

`beginRequest, endRequest, setShardingKey, setShardingKey, setShardingKeyIfValid, setShardingKeyIfValid`

### Constructor Detail

#### Connection

    public Connection​(Configuration conf,
                      ClosableLock lock,
                      org.mariadb.jdbc.client.Client client)

Connection construction.

Parameters:
  `conf` - configuration
  `lock` - thread safe locker
  `client` - client object

### Method Detail

#### setPoolConnection

    public void setPoolConnection​(MariaDbPoolConnection poolConnection)

Internal method. Indicate that connection is created from internal pool

Parameters:
  `poolConnection` - PoolConnection

#### cancelCurrentQuery

    public void cancelCurrentQuery()
                            throws SQLException

Cancels the current query - clones the current protocol and executes a query using the new connection.

Throws:
  `SQLException` - never thrown

#### createStatement

    public Statement createStatement()

Specified by:
  `createStatement` in interface `Connection`

#### prepareStatement

    public PreparedStatement prepareStatement​(String sql)
                                       throws SQLException

Specified by:
  `prepareStatement` in interface `Connection`
Throws:
  `SQLException`

#### prepareInternal

    public PreparedStatement prepareInternal​(String sql,
                                             int autoGeneratedKeys,
                                             int resultSetType,
                                             int resultSetConcurrency,
                                             boolean useBinary)
                                      throws SQLException

Prepare statement creation

Parameters:
  `sql` - sql
  `autoGeneratedKeys` - auto generated key required
  `resultSetType` - result-set type
  `resultSetConcurrency` - concurrency
  `useBinary` - use server prepare statement
Returns:
  prepared statement
Throws:
  `SQLException` - if Prepare fails

#### prepareCall

    public CallableStatement prepareCall​(String sql)
                                  throws SQLException

Specified by:
  `prepareCall` in interface `Connection`
Throws:
  `SQLException`

#### nativeSQL

    public String nativeSQL​(String sql)
                     throws SQLException

Specified by:
  `nativeSQL` in interface `Connection`
Throws:
  `SQLException`

#### getAutoCommit

    public boolean getAutoCommit()

Specified by:
  `getAutoCommit` in interface `Connection`

#### setAutoCommit

    public void setAutoCommit​(boolean autoCommit)
                       throws SQLException

Specified by:
  `setAutoCommit` in interface `Connection`
Throws:
  `SQLException`

#### commit

    public void commit()
                throws SQLException

Specified by:
  `commit` in interface `Connection`
Throws:
  `SQLException`

#### rollback

    public void rollback()
                  throws SQLException

Specified by:
  `rollback` in interface `Connection`
Throws:
  `SQLException`

#### close

    public void close()
               throws SQLException

Specified by:
  `close` in interface `AutoCloseable`
Specified by:
  `close` in interface `Connection`
Throws:
  `SQLException`

#### isClosed

    public boolean isClosed()

Specified by:
  `isClosed` in interface `Connection`

#### getContext

    public org.mariadb.jdbc.client.Context getContext()

Connection context.

Returns:
  connection context.

#### getLowercaseTableNames

    public int getLowercaseTableNames()
                               throws SQLException

Are table case-sensitive or not . Default Value: 0 (Unix), 1 (Windows), 2 (Mac OS X). If set to 0 (the default on Unix-based systems), table names and aliases and database names are compared in a case-sensitive manner. If set to 1 (the default on Windows), names are stored in lowercase and not compared in a case-sensitive manner. If set to 2 (the default on Mac OS X), names are stored as declared, but compared in lowercase.

Returns:
  int value.
Throws:
  `SQLException` - if a connection error occur

#### getMetaData

    public DatabaseMetaData getMetaData()

Specified by:
  `getMetaData` in interface `Connection`

#### isReadOnly

    public boolean isReadOnly()

Specified by:
  `isReadOnly` in interface `Connection`

#### setReadOnly

    public void setReadOnly​(boolean readOnly)
                     throws SQLException

Specified by:
  `setReadOnly` in interface `Connection`
Throws:
  `SQLException`

#### getCatalog

    public String getCatalog()
                      throws SQLException

Specified by:
  `getCatalog` in interface `Connection`
Throws:
  `SQLException`

#### setCatalog

    public void setCatalog​(String catalog)
                    throws SQLException

Specified by:
  `setCatalog` in interface `Connection`
Throws:
  `SQLException`

#### getSchema

    public String getSchema()
                     throws SQLException

Specified by:
  `getSchema` in interface `Connection`
Throws:
  `SQLException`

#### setSchema

    public void setSchema​(String schema)
                   throws SQLException

Specified by:
  `setSchema` in interface `Connection`
Throws:
  `SQLException`

#### getTransactionIsolation

    public int getTransactionIsolation()
                                throws SQLException

Specified by:
  `getTransactionIsolation` in interface `Connection`
Throws:
  `SQLException`

#### setTransactionIsolation

    public void setTransactionIsolation​(int level)
                                 throws SQLException

Specified by:
  `setTransactionIsolation` in interface `Connection`
Throws:
  `SQLException`

#### getWarnings

    public SQLWarning getWarnings()
                           throws SQLException

Specified by:
  `getWarnings` in interface `Connection`
Throws:
  `SQLException`

#### clearWarnings

    public void clearWarnings()

Specified by:
  `clearWarnings` in interface `Connection`

#### createStatement

    public Statement createStatement​(int resultSetType,
                                     int resultSetConcurrency)
                              throws SQLException

Specified by:
  `createStatement` in interface `Connection`
Throws:
  `SQLException`

#### prepareStatement

    public PreparedStatement prepareStatement​(String sql,
                                              int resultSetType,
                                              int resultSetConcurrency)
                                       throws SQLException

Specified by:
  `prepareStatement` in interface `Connection`
Throws:
  `SQLException`

#### prepareCall

    public CallableStatement prepareCall​(String sql,
                                         int resultSetType,
                                         int resultSetConcurrency)
                                  throws SQLException

Specified by:
  `prepareCall` in interface `Connection`
Throws:
  `SQLException`

#### getTypeMap

    public Map<String,​Class<?>> getTypeMap()

Specified by:
  `getTypeMap` in interface `Connection`

#### setTypeMap

    public void setTypeMap​(Map<String,​Class<?>> map)
                    throws SQLException

Specified by:
  `setTypeMap` in interface `Connection`
Throws:
  `SQLException`

#### getHoldability

    public int getHoldability()

Specified by:
  `getHoldability` in interface `Connection`

#### setHoldability

    public void setHoldability​(int holdability)

Specified by:
  `setHoldability` in interface `Connection`

#### setSavepoint

    public Savepoint setSavepoint()
                           throws SQLException

Specified by:
  `setSavepoint` in interface `Connection`
Throws:
  `SQLException`

#### setSavepoint

    public Savepoint setSavepoint​(String name)
                           throws SQLException

Specified by:
  `setSavepoint` in interface `Connection`
Throws:
  `SQLException`

#### rollback

    public void rollback​(Savepoint savepoint)
                  throws SQLException

Specified by:
  `rollback` in interface `Connection`
Throws:
  `SQLException`

#### releaseSavepoint

    public void releaseSavepoint​(Savepoint savepoint)
                          throws SQLException

Specified by:
  `releaseSavepoint` in interface `Connection`
Throws:
  `SQLException`

#### createStatement

    public Statement createStatement​(int resultSetType,
                                     int resultSetConcurrency,
                                     int resultSetHoldability)
                              throws SQLException

Specified by:
  `createStatement` in interface `Connection`
Throws:
  `SQLException`

#### prepareStatement

    public PreparedStatement prepareStatement​(String sql,
                                              int resultSetType,
                                              int resultSetConcurrency,
                                              int resultSetHoldability)
                                       throws SQLException

Specified by:
  `prepareStatement` in interface `Connection`
Throws:
  `SQLException`

#### prepareCall

    public CallableStatement prepareCall​(String sql,
                                         int resultSetType,
                                         int resultSetConcurrency,
                                         int resultSetHoldability)
                                  throws SQLException

Specified by:
  `prepareCall` in interface `Connection`
Throws:
  `SQLException`

#### prepareStatement

    public PreparedStatement prepareStatement​(String sql,
                                              int autoGeneratedKeys)
                                       throws SQLException

Specified by:
  `prepareStatement` in interface `Connection`
Throws:
  `SQLException`

#### prepareStatement

    public PreparedStatement prepareStatement​(String sql,
                                              int[] columnIndexes)
                                       throws SQLException

Specified by:
  `prepareStatement` in interface `Connection`
Throws:
  `SQLException`

#### prepareStatement

    public PreparedStatement prepareStatement​(String sql,
                                              String[] columnNames)
                                       throws SQLException

Specified by:
  `prepareStatement` in interface `Connection`
Throws:
  `SQLException`

#### createClob

    public Clob createClob()

Specified by:
  `createClob` in interface `Connection`

#### createBlob

    public Blob createBlob()

Specified by:
  `createBlob` in interface `Connection`

#### createNClob

    public NClob createNClob()

Specified by:
  `createNClob` in interface `Connection`

#### createSQLXML

    public SQLXML createSQLXML()
                        throws SQLException

Specified by:
  `createSQLXML` in interface `Connection`
Throws:
  `SQLException`

#### isValid

    public boolean isValid​(int timeout)
                    throws SQLException

Specified by:
  `isValid` in interface `Connection`
Throws:
  `SQLException`

#### setClientInfo

    public void setClientInfo​(String name,
                              String value)

Specified by:
  `setClientInfo` in interface `Connection`

#### getClientInfo

    public String getClientInfo​(String name)

Specified by:
  `getClientInfo` in interface `Connection`

#### getClientInfo

    public Properties getClientInfo()

Specified by:
  `getClientInfo` in interface `Connection`

#### setClientInfo

    public void setClientInfo​(Properties properties)

Specified by:
  `setClientInfo` in interface `Connection`

#### createArrayOf

    public Array createArrayOf​(String typeName,
                               Object[] elements)
                        throws SQLException

Specified by:
  `createArrayOf` in interface `Connection`
Throws:
  `SQLException`

#### createStruct

    public Struct createStruct​(String typeName,
                               Object[] attributes)
                        throws SQLException

Specified by:
  `createStruct` in interface `Connection`
Throws:
  `SQLException`

#### abort

    public void abort​(Executor executor)
               throws SQLException

Specified by:
  `abort` in interface `Connection`
Throws:
  `SQLException`

#### setNetworkTimeout

    public void setNetworkTimeout​(Executor executor,
                                  int milliseconds)
                           throws SQLException

Specified by:
  `setNetworkTimeout` in interface `Connection`
Throws:
  `SQLException`

#### getNetworkTimeout

    public int getNetworkTimeout()

Specified by:
  `getNetworkTimeout` in interface `Connection`

#### unwrap

    public <T> T unwrap​(Class<T> iface)
                 throws SQLException

Specified by:
  `unwrap` in interface `Wrapper`
Throws:
  `SQLException`

#### isWrapperFor

    public boolean isWrapperFor​(Class<?> iface)

Specified by:
  `isWrapperFor` in interface `Wrapper`

#### getClient

    public org.mariadb.jdbc.client.Client getClient()

Associate connection client

Returns:
  connection client

#### reset

    public void reset()
               throws SQLException

Reset connection set has it was after creating a "fresh" new connection. defaultTransactionIsolation must have been initialized.

BUT : - session variable state are reset only if option useResetConnection is set and - if using the option "useServerPrepStmts", PREPARE statement are still prepared

Throws:
  `SQLException` - if resetting operation failed

#### getThreadId

    public long getThreadId()

Current server thread id.

Returns:
  current server thread id

#### fireStatementClosed

    public void fireStatementClosed​(PreparedStatement prep)

Fire event to indicate to StatementEventListeners registered on the connection that a PreparedStatement is closed.

Parameters:
  `prep` - prepare statement closing

#### getExceptionFactory

    protected ExceptionFactory getExceptionFactory()

Get connection exception factory

Returns:
  connection exception factory

#### handleTimeout

    public QueryTimeoutHandler handleTimeout​(int queryTimeout)

Return a QueryTimeoutHandler for old server that don't support Statement timeout.

Parameters:
  `queryTimeout` - query timeout
Returns:
  a query timeout handler

#### getLock

    protected ClosableLock getLock()

Internal : retrieve internal ClosableLock

Returns:
  ClosableLock

#### __test_host

    public String __test_host()

for _TEST_ only

Returns:
  current host