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
Modifier and Type
Class
Description
`static final class`
`Configuration.Builder`
A builder for `Configuration` instances.

## Method Summary

Modifier and Type
Method
Description
`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`
`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`
`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 Details

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

### keyStorePassword

public String keyStorePassword()
key store password

Returns:
  key 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

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