Package org.mariadb.jdbc

## Class Configuration

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

    public class Configuration
    extends Object

parse and verification of URL.

basic syntax :
`jdbc:mariadb:[replication:|failover|loadbalance:|aurora:]//<hostDescription>[,<hostDescription>]/[database>] [?<key1>=<value1>[&<key2>=<value2>]]`

hostDescription:
- simple :
`<host>:<portnumber>`
(for example localhost:3306)
- complex :
`address=[(type=(master|slave))][(port=<portnumber>)](host=<host>)`
type is by default master
port is by default 3306

host can be dns name, ipv4 or ipv6.
in case of ipv6 and simple host description, the ip must be written inside bracket.
exemple : `jdbc:mariadb://[2001:0660:7401:0200:0000:0000:0edf:bdd7]:3306`

Some examples :
`jdbc:mariadb://localhost:3306/database?user=greg&password=pass`
`jdbc:mariadb://address=(type=master)(host=master1),address=(port=3307)(type=slave)(host=slave1)/database?user=greg&password=pass`

### Nested Class Summary

Nested Classes
`static class` `Configuration.Builder` A builder for `Configuration` instances.

### Method Summary

All Methods Static Methods Instance Methods Concrete Methods
`static boolean` `acceptsUrl​(String url)` Tell if mariadb driver accept url string.
`List<HostAddress>` `addresses()` addresses
`boolean` `allowLocalInfile()` permits LOAD LOCAL INFILE commands
`boolean` `allowMultiQueries()` permit using multi queries command
`boolean` `allowPublicKeyRetrieval()` permit mysql authentication to retrieve server certificate
`Boolean` `autocommit()` Force session autocommit on connection creation
`boolean` `blankTableNameMeta()` force returning blank table metadata (for old oracle compatibility)
`protected static String` `buildUrl​(Configuration conf)` Generate initialURL property
`boolean` `cachePrepStmts()` Cache prepared statement result.
`Configuration` `clone​(String username, String password)` Clone configuration with another user/password
`Codec<?>[]` `codecs()` datatype Encoder/decoder list
`String` `connectionAttributes()` Connections attributes
`String` `connectionCollation()` get connectionCollation
`String` `connectionTimeZone()` Set connectionTimeZone
`int` `connectTimeout()` socket connect timeout
`Configuration` `connectTimeout​(int connectTimeout)` Set connect timeout
`boolean` `createDatabaseIfNotExist()` create database if not exist
`CredentialPlugin` `credentialPlugin()` credential plugin to use
`String` `database()` Connection default database
`int` `defaultFetchSize()` result-set streaming default fetch size
`boolean` `disablePipeline()` Disable pipeline.
`boolean` `dumpQueriesOnException()` Must query by logged on exception.
`String` `enabledSslCipherSuites()` autorized cipher list.
`String` `enabledSslProtocolSuites()` permitted ssl protocol list (comma separated)
`boolean` `equals​(Object o)`
`boolean` `fallbackToSystemKeyStore()` Indicate if keyStore option is not set to use keystore system property like "javax.net.ssl.keyStore"
`boolean` `fallbackToSystemTrustStore()` Indicate if system default truststore implementation can be used
`Boolean` `forceConnectionTimeZoneToSession()` forceConnectionTimeZoneToSession must connection timezone be forced
`String` `galeraAllowedState()` Galera comma separated allowed state
`String` `geometryDefaultType()` geometry default decoding implementation
`HaMode` `haMode()` High availability mode
`int` `hashCode()`
`boolean` `includeInnodbStatusInDeadlockExceptions()` On deadlock exception, must driver execute additional commands to show innodb status in error description.
`boolean` `includeThreadDumpInDeadlockExceptions()` On deadlock exception, must driver display threads information on error description.
`String` `initialUrl()` Configuration generated URL depending on current configuration option.
`String` `initSql()` Execute initial command when connection is established
`boolean` `jdbcCompliantTruncation()` Force sql_mode to strict mode for JDBC compliance
`String` `keyPassword()` key store alias password
`String` `keyStore()` key store
`String` `keyStorePassword()` key store password
`String` `keyStoreType()` key store type (to replace default javax.net.ssl.keyStoreType system property)
`String` `localSocket()` local socket configuration
`String` `localSocketAddress()` local socket address path
`Integer` `maxAllowedPacket()` max_allowed_packet value to avoid sending packet with non supported size, droping the connection without reason.
`int` `maxIdleTime()` Max idle time
`int` `maxPoolSize()` max pool size
`int` `maxQuerySizeToLog()` query maximum size to log (query will be truncated of more than this limit)
`int` `minPoolSize()` Minimum pool size
`Properties` `nonMappedOptions()` non standard options
`boolean` `nullDatabaseMeansCurrent()` When enable, in DatabaseMetadata, will handle null database/schema (depending on UseCatalog=catalog/schema) as current
`static Configuration` `parse​(String url)` parse connection string
`static Configuration` `parse​(String url, Properties prop)` Parse url connection string with additional properties.
`String` `password()` configuration password
`boolean` `permitRedirect()` must client redirect when required
`boolean` `pinGlobalTxToPhysicalConnection()` When enabled, ensure that for XA operation to use the same connection
`String` `pipe()` Pipe path
`boolean` `pool()` Create pool
`String` `poolName()` pool name
`int` `poolValidMinDelay()` Pool mininum validation delay.
`int` `prepStmtCacheSize()` Prepare statement cache size.
`boolean` `preserveInstants()` Must timezone change preserve instants
`boolean` `registerJmxPool()` register pool information to JMX
`String` `restrictedAuth()` Restrict authentication plugin to comma separated plugin list
`int` `retriesAllDown()` retry the maximum retry number of attempts to reconnect after a failover.
`boolean` `returnMultiValuesGeneratedIds()` Returns multi-values generated ids.
`String` `serverRsaPublicKeyFile()` Server RSA public key file for caching_sha2_password authentication
`String` `serverSslCert()` server ssl certificate (file path / certificat content)
`String` `servicePrincipalName()` Service principal name (GSSAPI option)
`String` `sessionVariables()` coma separated Session variable list
`String` `socketFactory()` Socket factory class name
`int` `socketTimeout()` socket timeout
`SslMode` `sslMode()` SSl mode
`boolean` `tcpAbortiveClose()` close using TCP abortive close (RST TCP packet, in place or FIN packet)
`boolean` `tcpKeepAlive()` socket tcp keep alive
`int` `tcpKeepCount()` socket tcp keep count (java 11+ only)
`int` `tcpKeepIdle()` socket tcp keep idle (java 11+ only)
`int` `tcpKeepInterval()` socket tcp keep interval (java 11+ only)
`String` `timezone()` Set timezone
`boolean` `tinyInt1isBit()` Must tinyint(1) be considered as Bit
`String` `tlsSocketType()` TLS socket type
`Configuration.Builder` `toBuilder()` Create a Builder from current configuration.
`static String` `toConf​(String url)` Permit to have string information on how string is parsed.
`String` `toString()` ToString implementation.
`TransactionIsolation` `transactionIsolation()` Default transaction isolation
`boolean` `transactionReplay()` implements transaction replay failover
`int` `transactionReplaySize()` transaction replay maximum number of saved command.
`boolean` `transformedBitIsBoolean()` Must tinyint(1) be considered as Boolean or Bit
`String` `trustStore()` trust store
`String` `trustStorePassword()` trust store password
`String` `trustStoreType()` trust store type (to replace default javax.net.ssl.keyStoreType system property)
`boolean` `useAffectedRows()` Use affected row
`boolean` `useBulkStmts()` Use server COM_STMT_BULK for batching.
`boolean` `useBulkStmtsForInserts()` Use server COM_STMT_BULK for batching inserts.
`CatalogTerm` `useCatalogTerm()` Indicating using Catalog or Schema
`boolean` `useCompression()` Enable compression if server has compression capability
`boolean` `useLocalSessionState()` use local state to avoid unnecessary queries.
`boolean` `useMysqlMetadata()` Force returning MySQL metadata information
`String` `user()` configuration user
`boolean` `useReadAheadInput()` Read all data from socket in advance
`boolean` `useResetConnection()` Must connection returned to pool be RESET
`boolean` `useServerPrepStmts()` Use server prepared statement.
`boolean` `uuidAsString()` must uuid fields return as String and not java.util.UUID
`boolean` `yearIsDateType()` Must year be return by default as Date in result-set

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

`clone, finalize, getClass, notify, notifyAll, wait, wait, wait`

### Method Detail

#### toBuilder

    public Configuration.Builder toBuilder()

Create a Builder from current configuration. Since configuration data are final, this permit to change configuration, creating another object.

Returns:
  builder

#### acceptsUrl

    public static boolean acceptsUrl​(String url)

Tell if mariadb driver accept url string. (Correspond to interface java.jdbc.Driver.acceptsURL() method)

Parameters:
  `url` - url String
Returns:
  true if url string correspond.

#### parse

    public static Configuration parse​(String url)
                               throws SQLException

parse connection string

Parameters:
  `url` - connection string
Returns:
  configuration resulting object
Throws:
  `SQLException` - if not supported driver or wrong connection string format.

#### parse

    public static Configuration parse​(String url,
                                      Properties prop)
                               throws SQLException

Parse url connection string with additional properties.

Parameters:
  `url` - connection string
  `prop` - properties
Returns:
  UrlParser instance
Throws:
  `SQLException` - if parsing exception occur

#### toConf

    public static String toConf​(String url)
                         throws SQLException

Permit to have string information on how string is parsed. example : Configuration.toConf("jdbc:mariadb://localhost/test") will return a String containing: `Configuration: * resulting Url : jdbc:mariadb://localhost/test Unknown options : None Non default options : * database : test default options : * user : null ...`

Parameters:
  `url` - url string
Returns:
  string describing the configuration parsed from url
Throws:
  `SQLException` - if parsing fails

#### buildUrl

    protected static String buildUrl​(Configuration conf)

Generate initialURL property

Parameters:
  `conf` - current configuration
Returns:
  initialUrl value.

#### clone

    public Configuration clone​(String username,
                               String password)

Clone configuration with another user/password

Parameters:
  `username` - new username
  `password` - new password
Returns:
  new cloned configuration object

#### database

    public String database()

Connection default database

Returns:
  database

#### addresses

    public List<HostAddress> addresses()

addresses

Returns:
  addresses

#### haMode

    public HaMode haMode()

High availability mode

Returns:
  configuration HA mode

#### credentialPlugin

    public CredentialPlugin credentialPlugin()

credential plugin to use

Returns:
  credential plugin to use, null of none

#### user

    public String user()

configuration user

Returns:
  user

#### password

    public String password()

configuration password

Returns:
  password

#### initialUrl

    public String initialUrl()

Configuration generated URL depending on current configuration option. Password will be hidden by "***"

Returns:
  generated url

#### serverSslCert

    public String serverSslCert()

server ssl certificate (file path / certificat content)

Returns:
  server ssl certificate

#### keyStore

    public String keyStore()

key store

Returns:
  key store

#### trustStore

    public String trustStore()

trust store

Returns:
  trust store

#### keyStorePassword

    public String keyStorePassword()

key store password

Returns:
  key store password

#### trustStorePassword

    public String trustStorePassword()

trust store password

Returns:
  trust store password

#### keyPassword

    public String keyPassword()

key store alias password

Returns:
  key store alias password

#### keyStoreType

    public String keyStoreType()

key store type (to replace default javax.net.ssl.keyStoreType system property)

Returns:
  key store type

#### trustStoreType

    public String trustStoreType()

trust store type (to replace default javax.net.ssl.keyStoreType system property)

Returns:
  trust store type

#### enabledSslProtocolSuites

    public String enabledSslProtocolSuites()

permitted ssl protocol list (comma separated)

Returns:
  enabled ssl protocol list

#### fallbackToSystemKeyStore

    public boolean fallbackToSystemKeyStore()

Indicate if keyStore option is not set to use keystore system property like "javax.net.ssl.keyStore"

Returns:
  true if can use keystore system property

#### fallbackToSystemTrustStore

    public boolean fallbackToSystemTrustStore()

Indicate if system default truststore implementation can be used

Returns:
  true if system default truststore implementation can be used

#### socketFactory

    public String socketFactory()

Socket factory class name

Returns:
  socket factory

#### connectTimeout

    public int connectTimeout()

socket connect timeout

Returns:
  connect timeout

#### connectTimeout

    public Configuration connectTimeout​(int connectTimeout)

Set connect timeout

Parameters:
  `connectTimeout` - timeout value
Returns:
  current configuration

#### pipe

    public String pipe()

Pipe path

Returns:
  pipe value

#### localSocket

    public String localSocket()

local socket configuration

Returns:
  local socket path

#### tcpKeepAlive

    public boolean tcpKeepAlive()

socket tcp keep alive

Returns:
  socket tcp keep alive value

#### uuidAsString

    public boolean uuidAsString()

must uuid fields return as String and not java.util.UUID

Returns:
  must UUID return as String and not uuid

#### tcpKeepIdle

    public int tcpKeepIdle()

socket tcp keep idle (java 11+ only)

Returns:
  socket tcp keep idle

#### tcpKeepCount

    public int tcpKeepCount()

socket tcp keep count (java 11+ only)

Returns:
  socket tcp keep count

#### tcpKeepInterval

    public int tcpKeepInterval()

socket tcp keep interval (java 11+ only)

Returns:
  socket tcp keep interval

#### tcpAbortiveClose

    public boolean tcpAbortiveClose()

close using TCP abortive close (RST TCP packet, in place or FIN packet)

Returns:
  close using TCP abortive close

#### localSocketAddress

    public String localSocketAddress()

local socket address path

Returns:
  local socket address

#### socketTimeout

    public int socketTimeout()

socket timeout

Returns:
  socket timeout

#### allowMultiQueries

    public boolean allowMultiQueries()

permit using multi queries command

Returns:
  permit using multi queries command

#### allowLocalInfile

    public boolean allowLocalInfile()

permits LOAD LOCAL INFILE commands

Returns:
  allow LOAD LOCAL INFILE

#### useCompression

    public boolean useCompression()

Enable compression if server has compression capability

Returns:
  use compression

#### blankTableNameMeta

    public boolean blankTableNameMeta()

force returning blank table metadata (for old oracle compatibility)

Returns:
  metadata table return blank

#### sslMode

    public SslMode sslMode()

SSl mode

Returns:
  ssl mode

#### transactionIsolation

    public TransactionIsolation transactionIsolation()

Default transaction isolation

Returns:
  default transaction isolation.

#### enabledSslCipherSuites

    public String enabledSslCipherSuites()

autorized cipher list.

Returns:
  list of permitted ciphers

#### sessionVariables

    public String sessionVariables()

coma separated Session variable list

Returns:
  session variable

#### tinyInt1isBit

    public boolean tinyInt1isBit()

Must tinyint(1) be considered as Bit

Returns:
  true if tinyint(1) must be considered as Bit

#### transformedBitIsBoolean

    public boolean transformedBitIsBoolean()

Must tinyint(1) be considered as Boolean or Bit

Returns:
  true if tinyint(1) must be considered as Boolean

#### yearIsDateType

    public boolean yearIsDateType()

Must year be return by default as Date in result-set

Returns:
  year is Date type

#### timezone

    public String timezone()

Set timezone

Returns:
  timezone

#### connectionTimeZone

    public String connectionTimeZone()

Set connectionTimeZone

Returns:
  connectionTimeZone

#### connectionCollation

    public String connectionCollation()

get connectionCollation

Returns:
  connectionCollation

#### forceConnectionTimeZoneToSession

    public Boolean forceConnectionTimeZoneToSession()

forceConnectionTimeZoneToSession must connection timezone be forced

Returns:
  forceConnectionTimeZoneToSession

#### preserveInstants

    public boolean preserveInstants()

Must timezone change preserve instants

Returns:
  true if instants must be preserved

#### dumpQueriesOnException

    public boolean dumpQueriesOnException()

Must query by logged on exception.

Returns:
  dump queries on exception

#### prepStmtCacheSize

    public int prepStmtCacheSize()

Prepare statement cache size.

Returns:
  Prepare statement cache size

#### useAffectedRows

    public boolean useAffectedRows()

Use affected row

Returns:
  use affected rows

#### useServerPrepStmts

    public boolean useServerPrepStmts()

Use server prepared statement. IF false, using client prepared statement.

Returns:
  use server prepared statement

#### connectionAttributes

    public String connectionAttributes()

Connections attributes

Returns:
  connection meta informations

#### useBulkStmts

    public boolean useBulkStmts()

Use server COM_STMT_BULK for batching.

Returns:
  use server bulk command.

#### useBulkStmtsForInserts

    public boolean useBulkStmtsForInserts()

Use server COM_STMT_BULK for batching inserts. if useBulkStmts is enabled, useBulkStmtsForInserts will be as well

Returns:
  use server bulk command for inserts

#### disablePipeline

    public boolean disablePipeline()

Disable pipeline.

Returns:
  is pipeline disabled.

#### autocommit

    public Boolean autocommit()

Force session autocommit on connection creation

Returns:
  autocommit forced value

#### useMysqlMetadata

    public boolean useMysqlMetadata()

Force returning MySQL metadata information

Returns:
  force returning MySQL in metadata

#### nullDatabaseMeansCurrent

    public boolean nullDatabaseMeansCurrent()

When enable, in DatabaseMetadata, will handle null database/schema (depending on UseCatalog=catalog/schema) as current

Returns:
  must null value be considered as current catalog/schema

#### useCatalogTerm

    public CatalogTerm useCatalogTerm()

Indicating using Catalog or Schema

Returns:
  Indicating using Catalog or Schema

#### createDatabaseIfNotExist

    public boolean createDatabaseIfNotExist()

create database if not exist

Returns:
  create database if not exist

#### useLocalSessionState

    public boolean useLocalSessionState()

use local state to avoid unnecessary queries. This means application must use JDBC dedicated methods, like connection.setTransactionIsolation and never queries like "SET SESSION TRANSACTION ISOLATION LEVEL X" directly

Returns:
  can use local state

#### returnMultiValuesGeneratedIds

    public boolean returnMultiValuesGeneratedIds()

Returns multi-values generated ids. For mariadb 2.x connector compatibility

Returns:
  must returns multi-values generated ids.

#### jdbcCompliantTruncation

    public boolean jdbcCompliantTruncation()

Force sql_mode to strict mode for JDBC compliance

Returns:
  must force jdbc compliance

#### permitRedirect

    public boolean permitRedirect()

must client redirect when required

Returns:
  must client redirect when required

#### pinGlobalTxToPhysicalConnection

    public boolean pinGlobalTxToPhysicalConnection()

When enabled, ensure that for XA operation to use the same connection

Returns:
  pinGlobalTxToPhysicalConnection

#### includeInnodbStatusInDeadlockExceptions

    public boolean includeInnodbStatusInDeadlockExceptions()

On deadlock exception, must driver execute additional commands to show innodb status in error description.

Returns:
  includeInnodbStatusInDeadlockExceptions

#### includeThreadDumpInDeadlockExceptions

    public boolean includeThreadDumpInDeadlockExceptions()

On deadlock exception, must driver display threads information on error description.

Returns:
  include Thread Dump In Deadlock Exceptions

#### servicePrincipalName

    public String servicePrincipalName()

Service principal name (GSSAPI option)

Returns:
  service principal name

#### defaultFetchSize

    public int defaultFetchSize()

result-set streaming default fetch size

Returns:
  Default fetch size.

#### nonMappedOptions

    public Properties nonMappedOptions()

non standard options

Returns:
  non standard options

#### tlsSocketType

    public String tlsSocketType()

TLS socket type

Returns:
  TLS socket type

#### maxQuerySizeToLog

    public int maxQuerySizeToLog()

query maximum size to log (query will be truncated of more than this limit)

Returns:
  max query log size

#### maxAllowedPacket

    public Integer maxAllowedPacket()

max_allowed_packet value to avoid sending packet with non supported size, droping the connection without reason.

Returns:
  max_allowed_packet value

#### retriesAllDown

    public int retriesAllDown()

retry the maximum retry number of attempts to reconnect after a failover.

Returns:
  the maximum retry number of attempts to reconnect after a failover.

#### galeraAllowedState

    public String galeraAllowedState()

Galera comma separated allowed state

Returns:
  galera allowed state

#### pool

    public boolean pool()

Create pool

Returns:
  create pool if don't exists

#### poolName

    public String poolName()

pool name

Returns:
  pool name.

#### maxPoolSize

    public int maxPoolSize()

max pool size

Returns:
  maximum pool size

#### minPoolSize

    public int minPoolSize()

Minimum pool size

Returns:
  minimum pool size

#### maxIdleTime

    public int maxIdleTime()

Max idle time

Returns:
  pool max idle time.

#### registerJmxPool

    public boolean registerJmxPool()

register pool information to JMX

Returns:
  register pool to JMX

#### poolValidMinDelay

    public int poolValidMinDelay()

Pool mininum validation delay.

Returns:
  pool validation delay

#### useResetConnection

    public boolean useResetConnection()

Must connection returned to pool be RESET

Returns:
  use RESET on connection

#### serverRsaPublicKeyFile

    public String serverRsaPublicKeyFile()

Server RSA public key file for caching_sha2_password authentication

Returns:
  server key file

#### allowPublicKeyRetrieval

    public boolean allowPublicKeyRetrieval()

permit mysql authentication to retrieve server certificate

Returns:
  is driver allowed to retrieve server certificate from server

#### useReadAheadInput

    public boolean useReadAheadInput()

Read all data from socket in advance

Returns:
  use read ahead buffer implementation

#### cachePrepStmts

    public boolean cachePrepStmts()

Cache prepared statement result.

Returns:
  cache prepare results

#### transactionReplay

    public boolean transactionReplay()

implements transaction replay failover

Returns:
  true if transaction must be replayed on failover.

#### transactionReplaySize

    public int transactionReplaySize()

transaction replay maximum number of saved command.

Returns:
  transaction replay buffer size.

#### geometryDefaultType

    public String geometryDefaultType()

geometry default decoding implementation

Returns:
  geometry default type

#### restrictedAuth

    public String restrictedAuth()

Restrict authentication plugin to comma separated plugin list

Returns:
  authorized authentication list

#### initSql

    public String initSql()

Execute initial command when connection is established

Returns:
  initial SQL command

#### codecs

    public Codec<?>[] codecs()

datatype Encoder/decoder list

Returns:
  codec list

#### toString

    public String toString()

ToString implementation.

Overrides:
  `toString` in class `Object`
Returns:
  String value

#### equals

    public boolean equals​(Object o)

Overrides:
  `equals` in class `Object`

#### hashCode

    public int hashCode()

Overrides:
  `hashCode` in class `Object`