org.h2.jdbcx
Class JdbcDataSource

java.lang.Object
  extended by org.h2.message.TraceObject
      extended by 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

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, trace, 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.
 boolean isWrapperFor(java.lang.Class<?> iface)
          [Not supported] 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 setUser(java.lang.String user)
          Set the current user name.
 java.lang.String toString()
          INTERNAL
<T> T
unwrap(java.lang.Class<T> iface)
          [Not supported] Return an object of this class if possible.
 
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, 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

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
[Not supported] Return an object of this class if possible.

Specified by:
unwrap in interface java.sql.Wrapper
Parameters:
iface - the class
Throws:
java.sql.SQLException

isWrapperFor

public boolean isWrapperFor(java.lang.Class<?> iface)
                     throws java.sql.SQLException
[Not supported] Checks if unwrap can return an object of this class.

Specified by:
isWrapperFor in interface java.sql.Wrapper
Parameters:
iface - the class
Throws:
java.sql.SQLException

toString

public java.lang.String toString()
INTERNAL

Overrides:
toString in class java.lang.Object