Package org.h2.jdbcx

Class JdbcDataSource

  • All Implemented Interfaces:
    java.io.Serializable, java.sql.Wrapper, javax.naming.Referenceable, javax.sql.CommonDataSource, javax.sql.ConnectionPoolDataSource, javax.sql.DataSource, javax.sql.XADataSource, JdbcDataSourceBackwardsCompat

    public final class JdbcDataSource
    extends org.h2.message.TraceObject
    implements javax.sql.XADataSource, javax.sql.DataSource, javax.sql.ConnectionPoolDataSource, java.io.Serializable, javax.naming.Referenceable, JdbcDataSourceBackwardsCompat
    A data source for H2 database connections. It is a factory for XAConnection and Connection objects. This class is usually registered in a JNDI naming service. To create a data source object and register it with a JNDI service, use the following code:
     import org.h2.jdbcx.JdbcDataSource;
     import javax.naming.Context;
     import javax.naming.InitialContext;
     JdbcDataSource ds = new JdbcDataSource();
     ds.setURL("jdbc:h2:˜/test");
     ds.setUser("sa");
     ds.setPassword("sa");
     Context ctx = new InitialContext();
     ctx.bind("jdbc/dsName", ds);
     
    To use a data source that is already registered, use the following code:
     import java.sql.Connection;
     import javax.sql.DataSource;
     import javax.naming.Context;
     import javax.naming.InitialContext;
     Context ctx = new InitialContext();
     DataSource ds = (DataSource) ctx.lookup("jdbc/dsName");
     Connection conn = ds.getConnection();
     
    In this example the user name and password are serialized as well; this may be a security problem in some cases.
    See Also:
    Serialized Form
    • Field Summary

      • Fields inherited from class org.h2.message.TraceObject

        ARRAY, BLOB, CALLABLE_STATEMENT, CLOB, CONNECTION, DATA_SOURCE, DATABASE_META_DATA, PARAMETER_META_DATA, PREPARED_STATEMENT, RESULT_SET, RESULT_SET_META_DATA, SAVEPOINT, SQLXML, STATEMENT, trace, XA_DATA_SOURCE, XID
    • Constructor Summary

      Constructors 
      Constructor Description
      JdbcDataSource()
      The public constructor.
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      java.sql.Connection getConnection()
      Open a new connection using the current URL, user name and password.
      java.sql.Connection getConnection​(java.lang.String user, java.lang.String password)
      Open a new connection using the current URL and the specified user name and password.
      java.lang.String getDescription()
      Get the current description.
      int getLoginTimeout()
      Get the login timeout in seconds, 0 meaning no timeout.
      java.io.PrintWriter getLogWriter()
      Get the current log writer for this object.
      java.util.logging.Logger getParentLogger()
      [Not supported]
      java.lang.String getPassword()
      Get the current password.
      javax.sql.PooledConnection getPooledConnection()
      Open a new pooled connection using the current URL, user name and password.
      javax.sql.PooledConnection getPooledConnection​(java.lang.String user, java.lang.String password)
      Open a new pooled connection using the current URL and the specified user name and password.
      javax.naming.Reference getReference()
      Get a new reference for this object, using the current settings.
      java.lang.String getUrl()
      Get the current URL.
      java.lang.String getURL()
      Get the current URL.
      java.lang.String getUser()
      Get the current user name.
      javax.sql.XAConnection getXAConnection()
      Open a new XA connection using the current URL, user name and password.
      javax.sql.XAConnection getXAConnection​(java.lang.String user, java.lang.String password)
      Open a new XA connection using the current URL and the specified user name and password.
      boolean isWrapperFor​(java.lang.Class<?> iface)
      Checks if unwrap can return an object of this class.
      void setDescription​(java.lang.String description)
      Set the description.
      void setLoginTimeout​(int timeout)
      Set the login timeout in seconds, 0 meaning no timeout.
      void setLogWriter​(java.io.PrintWriter out)
      Set the current log writer for this object.
      void setPassword​(java.lang.String password)
      Set the current password.
      void setPasswordChars​(char[] password)
      Set the current password in the form of a char array.
      void setUrl​(java.lang.String url)
      Set the current URL.
      void setURL​(java.lang.String url)
      Set the current URL.
      void setUser​(java.lang.String user)
      Set the current user name.
      java.lang.String toString()
      INTERNAL
      <T> T unwrap​(java.lang.Class<T> iface)
      Return an object of this class if possible.
      • Methods inherited from class org.h2.message.TraceObject

        debugCode, debugCodeAssign, debugCodeCall, debugCodeCall, debugCodeCall, getNextId, getTraceId, getTraceObjectName, isDebugEnabled, isInfoEnabled, logAndConvert, quote, quoteArray, quoteBigDecimal, quoteBytes, quoteDate, quoteIntArray, quoteMap, quoteTime, quoteTimestamp, setTrace, unsupported
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, 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
    • Constructor Detail

      • JdbcDataSource

        public JdbcDataSource()
        The public constructor.
    • Method Detail

      • getLoginTimeout

        public int getLoginTimeout()
        Get the login timeout in seconds, 0 meaning no timeout.
        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 timeout in seconds
      • setLoginTimeout

        public void setLoginTimeout​(int timeout)
        Set the login timeout in seconds, 0 meaning no timeout. The default value is 0. This value is ignored by this database.
        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:
        timeout - the timeout in seconds
      • getLogWriter

        public java.io.PrintWriter getLogWriter()
        Get the current log writer for this object.
        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
      • setLogWriter

        public void setLogWriter​(java.io.PrintWriter out)
        Set the current log writer for this object. This value is ignored by this database.
        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 log writer
      • getConnection

        public java.sql.Connection getConnection()
                                          throws java.sql.SQLException
        Open a new connection using the current URL, user name and password.
        Specified by:
        getConnection in interface javax.sql.DataSource
        Returns:
        the connection
        Throws:
        java.sql.SQLException
      • getConnection

        public java.sql.Connection getConnection​(java.lang.String user,
                                                 java.lang.String password)
                                          throws java.sql.SQLException
        Open a new connection using the current URL and the specified user name and password.
        Specified by:
        getConnection in interface javax.sql.DataSource
        Parameters:
        user - the user name
        password - the password
        Returns:
        the connection
        Throws:
        java.sql.SQLException
      • getURL

        public java.lang.String getURL()
        Get the current URL.
        Returns:
        the URL
      • setURL

        public void setURL​(java.lang.String url)
        Set the current URL.
        Parameters:
        url - the new URL
      • getUrl

        public java.lang.String getUrl()
        Get the current URL. This method does the same as getURL, but this methods signature conforms the JavaBean naming convention.
        Returns:
        the URL
      • setUrl

        public void setUrl​(java.lang.String url)
        Set the current URL. This method does the same as setURL, but this methods signature conforms the JavaBean naming convention.
        Parameters:
        url - the new URL
      • setPassword

        public void setPassword​(java.lang.String password)
        Set the current password.
        Parameters:
        password - the new password.
      • setPasswordChars

        public void setPasswordChars​(char[] password)
        Set the current password in the form of a char array.
        Parameters:
        password - the new password in the form of a char array.
      • getPassword

        public java.lang.String getPassword()
        Get the current password.
        Returns:
        the password
      • getUser

        public java.lang.String getUser()
        Get the current user name.
        Returns:
        the user name
      • setUser

        public void setUser​(java.lang.String user)
        Set the current user name.
        Parameters:
        user - the new user name
      • getDescription

        public java.lang.String getDescription()
        Get the current description.
        Returns:
        the description
      • setDescription

        public void setDescription​(java.lang.String description)
        Set the description.
        Parameters:
        description - the new description
      • getReference

        public javax.naming.Reference getReference()
        Get a new reference for this object, using the current settings.
        Specified by:
        getReference in interface javax.naming.Referenceable
        Returns:
        the new reference
      • getXAConnection

        public javax.sql.XAConnection getXAConnection()
                                               throws java.sql.SQLException
        Open a new XA connection using the current URL, user name and password.
        Specified by:
        getXAConnection in interface javax.sql.XADataSource
        Returns:
        the connection
        Throws:
        java.sql.SQLException
      • getXAConnection

        public javax.sql.XAConnection getXAConnection​(java.lang.String user,
                                                      java.lang.String password)
                                               throws java.sql.SQLException
        Open a new XA connection using the current URL and the specified user name and password.
        Specified by:
        getXAConnection in interface javax.sql.XADataSource
        Parameters:
        user - the user name
        password - the password
        Returns:
        the connection
        Throws:
        java.sql.SQLException
      • getPooledConnection

        public javax.sql.PooledConnection getPooledConnection()
                                                       throws java.sql.SQLException
        Open a new pooled connection using the current URL, user name and password.
        Specified by:
        getPooledConnection in interface javax.sql.ConnectionPoolDataSource
        Returns:
        the connection
        Throws:
        java.sql.SQLException
      • getPooledConnection

        public javax.sql.PooledConnection getPooledConnection​(java.lang.String user,
                                                              java.lang.String password)
                                                       throws java.sql.SQLException
        Open a new pooled connection using the current URL and the specified user name and password.
        Specified by:
        getPooledConnection in interface javax.sql.ConnectionPoolDataSource
        Parameters:
        user - the user name
        password - the password
        Returns:
        the connection
        Throws:
        java.sql.SQLException
      • unwrap

        public <T> T unwrap​(java.lang.Class<T> iface)
                     throws java.sql.SQLException
        Return an object of this class if possible.
        Specified by:
        unwrap in interface java.sql.Wrapper
        Parameters:
        iface - the class
        Returns:
        this
        Throws:
        java.sql.SQLException
      • isWrapperFor

        public boolean isWrapperFor​(java.lang.Class<?> iface)
                             throws java.sql.SQLException
        Checks if unwrap can return an object of this class.
        Specified by:
        isWrapperFor in interface java.sql.Wrapper
        Parameters:
        iface - the class
        Returns:
        whether or not the interface is assignable from this class
        Throws:
        java.sql.SQLException
      • getParentLogger

        public java.util.logging.Logger getParentLogger()
        [Not supported]
        Specified by:
        getParentLogger in interface javax.sql.CommonDataSource
      • toString

        public java.lang.String toString()
        INTERNAL
        Overrides:
        toString in class java.lang.Object