## org.h2.jdbcx
Class JdbcDataSource

    java.lang.Object
      org.h2.message.TraceObject
          org.h2.jdbcx.JdbcDataSource

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

    public class JdbcDataSource

extends TraceObject
implements javax.sql.XADataSource, javax.sql.DataSource, javax.sql.ConnectionPoolDataSource, java.io.Serializable, javax.naming.Referenceable

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, SQL_EXCEPTION, STATEMENT, XA_DATA_SOURCE, XA_RESOURCE, XID`

Constructor Summary
`JdbcDataSource()` The public constructor.

Method Summary
`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.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` `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.
`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` `setUser(java.lang.String user)` Set the current user name.
`java.lang.String` `toString()` INTERNAL

Methods inherited from class org.h2.message.TraceObject
`debugCode, debugCodeAssign, debugCodeCall, debugCodeCall, debugCodeCall, getNextId, getTrace, getTraceId, getTraceObjectName, isDebugEnabled, isInfoEnabled, logAndConvert, quote, quoteArray, quoteBigDecimal, quoteBytes, quoteDate, quoteIntArray, quoteMap, quoteTime, quoteTimestamp, setTrace, 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.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.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.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.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

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

### toString

    public java.lang.String toString()

  INTERNAL

  Overrides:
    `toString` in class `java.lang.Object`