Class MariaDbDataSource

  • All Implemented Interfaces:
    java.sql.Wrapper, javax.sql.CommonDataSource, javax.sql.ConnectionPoolDataSource, javax.sql.DataSource, javax.sql.XADataSource
    Direct Known Subclasses:
    MySQLDataSource

    public class MariaDbDataSource
    extends java.lang.Object
    implements javax.sql.DataSource, javax.sql.ConnectionPoolDataSource, javax.sql.XADataSource
    • Method Summary

      All Methods Instance Methods Concrete Methods Deprecated Methods 
      Modifier and Type Method Description
      java.sql.Connection getConnection()
      Attempts to establish a connection with the data source that this DataSource object represents.
      java.sql.Connection getConnection​(java.lang.String username, java.lang.String password)
      Attempts to establish a connection with the data source that this DataSource object represents.
      java.lang.String getDatabaseName()
      Gets the name of the database.
      int getLoginTimeout()
      Gets the maximum time in seconds that this data source can wait while attempting to connect to a database.
      java.io.PrintWriter getLogWriter()
      Retrieves the log writer for this DataSource object.
      java.util.logging.Logger getParentLogger()  
      javax.sql.PooledConnection getPooledConnection()
      Attempts to establish a physical database connection that can be used as a pooled connection.
      javax.sql.PooledConnection getPooledConnection​(java.lang.String user, java.lang.String password)
      Attempts to establish a physical database connection that can be used as a pooled connection.
      int getPort()
      Returns the port number.
      int getPortNumber()
      Returns the port number.
      java.lang.String getServerName()
      Returns the name of the database server.
      protected UrlParser getUrlParser()
      For testing purpose only.
      java.lang.String getUser()
      Gets the username.
      java.lang.String getUserName()
      Gets the username.
      javax.sql.XAConnection getXAConnection()  
      javax.sql.XAConnection getXAConnection​(java.lang.String user, java.lang.String password)  
      protected void initialize()  
      boolean isWrapperFor​(java.lang.Class<?> interfaceOrWrapper)
      Returns true if this either implements the interface argument or is directly or indirectly a wrapper for an object that does.
      private void reInitializeIfNeeded()  
      void setDatabaseName​(java.lang.String database)
      Sets the database name.
      void setLoginTimeout​(int seconds)
      Sets the maximum time in seconds that this data source will wait while attempting to connect to a database.
      void setLogWriter​(java.io.PrintWriter out)
      Sets the log writer for this DataSource object to the given java.io.PrintWriter object.
      void setPassword​(java.lang.String password)
      Sets the password.
      void setPort​(int port)
      Sets the database port.
      void setPortNumber​(int port)
      Sets the port number.
      void setProperties​(java.lang.String properties)
      Deprecated.
      void setServerName​(java.lang.String serverName)
      Sets the server name.
      void setUrl​(java.lang.String url)
      Sets the connection string URL.
      void setUser​(java.lang.String user)
      Sets the username.
      void setUserName​(java.lang.String userName)
      Sets the username.
      <T> T unwrap​(java.lang.Class<T> iface)
      Returns an object that implements the given interface to allow access to non-standard methods, or standard methods not exposed by the proxy.
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
      • Methods inherited from interface javax.sql.CommonDataSource

        createShardingKeyBuilder
      • Methods inherited from interface javax.sql.ConnectionPoolDataSource

        createPooledConnectionBuilder
      • Methods inherited from interface javax.sql.DataSource

        createConnectionBuilder
      • Methods inherited from interface javax.sql.XADataSource

        createXAConnectionBuilder
    • Field Detail

      • hostname

        private java.lang.String hostname
      • port

        private java.lang.Integer port
      • connectTimeoutInMs

        private java.lang.Integer connectTimeoutInMs
      • database

        private java.lang.String database
      • url

        private java.lang.String url
      • user

        private java.lang.String user
      • password

        private java.lang.String password
      • properties

        private java.lang.String properties
    • Constructor Detail

      • MariaDbDataSource

        public MariaDbDataSource​(java.lang.String hostname,
                                 int port,
                                 java.lang.String database)
        Constructor.
        Parameters:
        hostname - hostname (ipv4, ipv6, dns name)
        port - server port
        database - database name
      • MariaDbDataSource

        public MariaDbDataSource​(java.lang.String url)
      • MariaDbDataSource

        public MariaDbDataSource()
        Default constructor. hostname will be localhost, port 3306.
    • Method Detail

      • getDatabaseName

        public java.lang.String getDatabaseName()
        Gets the name of the database.
        Returns:
        the name of the database for this data source
      • setDatabaseName

        public void setDatabaseName​(java.lang.String database)
                             throws java.sql.SQLException
        Sets the database name.
        Parameters:
        database - the name of the database
        Throws:
        java.sql.SQLException - if connection information are erroneous
      • getUser

        public java.lang.String getUser()
        Gets the username.
        Returns:
        the username to use when connecting to the database
      • setUser

        public void setUser​(java.lang.String user)
                     throws java.sql.SQLException
        Sets the username.
        Parameters:
        user - the username
        Throws:
        java.sql.SQLException - if connection information are erroneous
      • getUserName

        public java.lang.String getUserName()
        Gets the username.
        Returns:
        the username to use when connecting to the database
      • setUserName

        public void setUserName​(java.lang.String userName)
                         throws java.sql.SQLException
        Sets the username.
        Parameters:
        userName - the username
        Throws:
        java.sql.SQLException - if connection information are erroneous
      • setPassword

        public void setPassword​(java.lang.String password)
                         throws java.sql.SQLException
        Sets the password.
        Parameters:
        password - the password
        Throws:
        java.sql.SQLException - if connection information are erroneous
      • getPort

        public int getPort()
        Returns the port number.
        Returns:
        the port number
      • setPort

        public void setPort​(int port)
                     throws java.sql.SQLException
        Sets the database port.
        Parameters:
        port - the port
        Throws:
        java.sql.SQLException - if connection information are erroneous
      • getPortNumber

        public int getPortNumber()
        Returns the port number.
        Returns:
        the port number
      • setPortNumber

        public void setPortNumber​(int port)
                           throws java.sql.SQLException
        Sets the port number.
        Parameters:
        port - the port
        Throws:
        java.sql.SQLException - if connection information are erroneous
        See Also:
        setPort(int)
      • setProperties

        @Deprecated
        public void setProperties​(java.lang.String properties)
                           throws java.sql.SQLException
        Deprecated.
        Throws:
        java.sql.SQLException
      • setUrl

        public void setUrl​(java.lang.String url)
                    throws java.sql.SQLException
        Sets the connection string URL.
        Parameters:
        url - the connection string
        Throws:
        java.sql.SQLException - if error in URL
      • getServerName

        public java.lang.String getServerName()
        Returns the name of the database server.
        Returns:
        the name of the database server
      • setServerName

        public void setServerName​(java.lang.String serverName)
                           throws java.sql.SQLException
        Sets the server name.
        Parameters:
        serverName - the server name
        Throws:
        java.sql.SQLException - if connection information are erroneous
      • getConnection

        public java.sql.Connection getConnection()
                                          throws java.sql.SQLException
        Attempts to establish a connection with the data source that this DataSource object represents.
        Specified by:
        getConnection in interface javax.sql.DataSource
        Returns:
        a connection to the data source
        Throws:
        java.sql.SQLException - if a database access error occurs
      • getConnection

        public java.sql.Connection getConnection​(java.lang.String username,
                                                 java.lang.String password)
                                          throws java.sql.SQLException
        Attempts to establish a connection with the data source that this DataSource object represents.
        Specified by:
        getConnection in interface javax.sql.DataSource
        Parameters:
        username - the database user on whose behalf the connection is being made
        password - the user's password
        Returns:
        a connection to the data source
        Throws:
        java.sql.SQLException - if a database access error occurs
      • getLogWriter

        public java.io.PrintWriter getLogWriter()
        Retrieves the log writer for this DataSource object.

        The log writer is a character output stream to which all logging and tracing messages for this data source will be printed. This includes messages printed by the methods of this object, messages printed by methods of other objects manufactured by this object, and so on. Messages printed to a data source specific log writer are not printed to the log writer associated with the java.sql.DriverManager class. When a DataSource object is created, the log writer is initially null; in other words, the default is for logging to be disabled.

        Specified by:
        getLogWriter in interface javax.sql.CommonDataSource
        Specified by:
        getLogWriter in interface javax.sql.ConnectionPoolDataSource
        Specified by:
        getLogWriter in interface javax.sql.DataSource
        Specified by:
        getLogWriter in interface javax.sql.XADataSource
        Returns:
        the log writer for this data source or null if logging is disabled
        See Also:
        setLogWriter(java.io.PrintWriter)
      • setLogWriter

        public void setLogWriter​(java.io.PrintWriter out)
        Sets the log writer for this DataSource object to the given java.io.PrintWriter object.

        The log writer is a character output stream to which all logging and tracing messages for this data source will be printed. This includes messages printed by the methods of this object, messages printed by methods of other objects manufactured by this object, and so on. Messages printed to a data source- specific log writer are not printed to the log writer associated with the java.sql.DriverManager class. When a DataSource object is created the log writer is initially null; in other words, the default is for logging to be disabled.

        Specified by:
        setLogWriter in interface javax.sql.CommonDataSource
        Specified by:
        setLogWriter in interface javax.sql.ConnectionPoolDataSource
        Specified by:
        setLogWriter in interface javax.sql.DataSource
        Specified by:
        setLogWriter in interface javax.sql.XADataSource
        Parameters:
        out - the new log writer; to disable logging, set to null
        See Also:
        getLogWriter()
      • getLoginTimeout

        public int getLoginTimeout()
        Gets the maximum time in seconds that this data source can wait while attempting to connect to a database. A value of zero means that the timeout is the default system timeout if there is one; otherwise, it means that there is no timeout. When a DataSource object is created, the login timeout is initially zero.
        Specified by:
        getLoginTimeout in interface javax.sql.CommonDataSource
        Specified by:
        getLoginTimeout in interface javax.sql.ConnectionPoolDataSource
        Specified by:
        getLoginTimeout in interface javax.sql.DataSource
        Specified by:
        getLoginTimeout in interface javax.sql.XADataSource
        Returns:
        the data source login time limit
        See Also:
        setLoginTimeout(int)
      • setLoginTimeout

        public void setLoginTimeout​(int seconds)
        Sets the maximum time in seconds that this data source will wait while attempting to connect to a database. A value of zero specifies that the timeout is the default system timeout if there is one; otherwise, it specifies that there is no timeout. When a DataSource object is created, the login timeout is initially zero.
        Specified by:
        setLoginTimeout in interface javax.sql.CommonDataSource
        Specified by:
        setLoginTimeout in interface javax.sql.ConnectionPoolDataSource
        Specified by:
        setLoginTimeout in interface javax.sql.DataSource
        Specified by:
        setLoginTimeout in interface javax.sql.XADataSource
        Parameters:
        seconds - the data source login time limit
        See Also:
        getLoginTimeout()
      • unwrap

        public <T> T unwrap​(java.lang.Class<T> iface)
                     throws java.sql.SQLException
        Returns an object that implements the given interface to allow access to non-standard methods, or standard methods not exposed by the proxy.

        If the receiver implements the interface then the result is the receiver or a proxy for the receiver. If the receiver is a wrapper and the wrapped object implements the interface then the result is the wrapped object or a proxy for the wrapped object. Otherwise return the the result of calling unwrap recursively on the wrapped object or a proxy for that result. If the receiver is not a wrapper and does not implement the interface, then an SQLException is thrown.

        Specified by:
        unwrap in interface java.sql.Wrapper
        Parameters:
        iface - A Class defining an interface that the result must implement.
        Returns:
        an object that implements the interface. May be a proxy for the actual implementing object.
        Throws:
        java.sql.SQLException - If no object found that implements the interface
        Since:
        1.6
      • isWrapperFor

        public boolean isWrapperFor​(java.lang.Class<?> interfaceOrWrapper)
                             throws java.sql.SQLException
        Returns true if this either implements the interface argument or is directly or indirectly a wrapper for an object that does. Returns false otherwise. If this implements the interface then return true, else if this is a wrapper then return the result of recursively calling isWrapperFor on the wrapped object. If this does not implement the interface and is not a wrapper, return false. This method should be implemented as a low-cost operation compared to unwrap so that callers can use this method to avoid expensive unwrap calls that may fail. If this method returns true then calling unwrap with the same argument should succeed.
        Specified by:
        isWrapperFor in interface java.sql.Wrapper
        Parameters:
        interfaceOrWrapper - a Class defining an interface.
        Returns:
        true if this implements the interface or directly or indirectly wraps an object that does.
        Throws:
        java.sql.SQLException - if an error occurs while determining whether this is a wrapper for an object with the given interface.
      • getPooledConnection

        public javax.sql.PooledConnection getPooledConnection()
                                                       throws java.sql.SQLException
        Attempts to establish a physical database connection that can be used as a pooled connection.
        Specified by:
        getPooledConnection in interface javax.sql.ConnectionPoolDataSource
        Returns:
        a PooledConnection object that is a physical connection to the database that this ConnectionPoolDataSource object represents
        Throws:
        java.sql.SQLException - if a database access error occurs
      • getPooledConnection

        public javax.sql.PooledConnection getPooledConnection​(java.lang.String user,
                                                              java.lang.String password)
                                                       throws java.sql.SQLException
        Attempts to establish a physical database connection that can be used as a pooled connection.
        Specified by:
        getPooledConnection in interface javax.sql.ConnectionPoolDataSource
        Parameters:
        user - the database user on whose behalf the connection is being made
        password - the user's password
        Returns:
        a PooledConnection object that is a physical connection to the database that this ConnectionPoolDataSource object represents
        Throws:
        java.sql.SQLException - if a database access error occurs
      • getXAConnection

        public javax.sql.XAConnection getXAConnection()
                                               throws java.sql.SQLException
        Specified by:
        getXAConnection in interface javax.sql.XADataSource
        Throws:
        java.sql.SQLException
      • getXAConnection

        public javax.sql.XAConnection getXAConnection​(java.lang.String user,
                                                      java.lang.String password)
                                               throws java.sql.SQLException
        Specified by:
        getXAConnection in interface javax.sql.XADataSource
        Throws:
        java.sql.SQLException
      • getParentLogger

        public java.util.logging.Logger getParentLogger()
        Specified by:
        getParentLogger in interface javax.sql.CommonDataSource
      • getUrlParser

        protected UrlParser getUrlParser()
        For testing purpose only.
        Returns:
        current url parser.
      • reInitializeIfNeeded

        private void reInitializeIfNeeded()
                                   throws java.sql.SQLException
        Throws:
        java.sql.SQLException
      • initialize

        protected void initialize()
                           throws java.sql.SQLException
        Throws:
        java.sql.SQLException