Class UrlParser

  • All Implemented Interfaces:
    Cloneable

    public class UrlParser
    extends Object
    implements Cloneable
    parse and verification of URL.

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

    hostDescription:
    - simple :
    <host>:<portnumber>
    (for example localhost:3306)

    - complex :
    address=[(type=(master|replica))][(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.
    example : 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=replica)(host=replica1)/database?user=greg&password=pass

    • Constructor Detail

      • UrlParser

        public UrlParser​(String database,
                         List<HostAddress> addresses,
                         Options options,
                         HaMode haMode)
                  throws SQLException
        Constructor.
        Parameters:
        database - database
        addresses - list of hosts
        options - connection option
        haMode - High availability mode
        Throws:
        SQLException - if credential plugin cannot be loaded
    • Method Detail

      • 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 UrlParser 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
      • auroraPipelineQuirks

        public UrlParser auroraPipelineQuirks()
        Permit setting parameters not forced. if options useBatchMultiSend and usePipelineAuth are not explicitly set in connection string, value will default to true or false according if aurora detection.
        Returns:
        UrlParser for easy testing
      • parseUrl

        public void parseUrl​(String url)
                      throws SQLException
        Parse url connection string.
        Parameters:
        url - connection string
        Throws:
        SQLException - if url format is incorrect
      • getUsername

        public String getUsername()
      • setUsername

        public void setUsername​(String username)
      • getPassword

        public String getPassword()
      • setPassword

        public void setPassword​(String password)
      • getDatabase

        public String getDatabase()
      • setDatabase

        public void setDatabase​(String database)
      • getOptions

        public Options getOptions()
      • setProperties

        protected void setProperties​(String urlParameters)
      • toString

        public String toString()
        ToString implementation.
        Overrides:
        toString in class Object
        Returns:
        String value
      • getInitialUrl

        public String getInitialUrl()
      • getHaMode

        public HaMode getHaMode()
      • hashCode

        public int hashCode()
        Overrides:
        hashCode in class Object
      • isMultiMaster

        public boolean isMultiMaster()