org.h2.jdbcx

## Class JdbcDataSource

- java.lang.Object
- - org.h2.message.TraceObject
  - - org.h2.jdbcx.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 and Description
    `JdbcDataSource()` The public constructor.

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method and 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`

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