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 class JdbcDataSource
    extends 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

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