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

  • 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)
      Builds a JDBC URL from the provided configuration.
      Parameters:
      conf - Current configuration
      Returns:
      Complete JDBC URL string
    • 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
    • havePrimaryHostOnly

      public boolean havePrimaryHostOnly()
    • 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
    • credentialType

      public String credentialType()
    • 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
    • disconnectOnExpiredPasswords

      public boolean disconnectOnExpiredPasswords()
      On connection creation, indicate behavior when password is expired. When true (default) throw an expired password error When false, connection succeed in "sandbox" mode, only queries related to password change are allowed
      Returns:
      must connection fails on expired password
    • sslMode

      public SslMode sslMode()
      SSl mode
      Returns:
      ssl mode
    • transactionIsolation

      public TransactionIsolation transactionIsolation()
      Default transaction isolation
      Returns:
      default transaction isolation.
    • metaExportedKeys

      public MetaExportedKeys metaExportedKeys()
      Default metadata getExportedKeys implementation.
      Returns:
      default implementation
    • 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
    • oldModeNoPrecisionTimestamp

      public boolean oldModeNoPrecisionTimestamp()
      Force Timestamp string representation compatible to 2.7 version Timestamp string representation will then correspond to Timestamp.toString() in place of taking field precision
      Returns:
      force 2.7 timestamp to string behavior
    • 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
    • permitNoResults

      public boolean permitNoResults()
      Indicate if Statement/PreparedStatement.executeQuery for command that produce no result will return an exception or just an empty result-set

      When enabled, command not returning no data will end returning an empty result-set When disabled, command not returning no data will end throwing an exception

      Returns:
      permitNoResults
    • 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