org.apache.lucene.store.jdbc.datasource
Class DriverManagerDataSource

java.lang.Object
  extended by org.apache.lucene.store.jdbc.datasource.AbstractDataSource
      extended by org.apache.lucene.store.jdbc.datasource.DriverManagerDataSource
All Implemented Interfaces:
DataSource

public class DriverManagerDataSource
extends AbstractDataSource

Simple implementation of the standard JDBC DataSource interface, configuring a plain old JDBC Driver via bean properties, and returning a new Connection for every getConnection call.

Useful for test or standalone environments outside of a J2EE container. Pool-assuming Connection.close() calls will simply close the Connection, so any DataSource-aware persistence code should work.

In a J2EE container, it is recommended to use a JNDI DataSource provided by the container.

If you need a "real" connection pool outside of a J2EE container, consider Apache's Jakarta Commons DBCP. Its BasicDataSource is a full connection pool bean, supporting the same basic properties as this class plus specific settings.

Note, autoCommit property defaults to false.

Author:
kimchy

Constructor Summary
DriverManagerDataSource()
          Constructor for bean-style configuration.
DriverManagerDataSource(String url)
          Create a new DriverManagerDataSource with the given JDBC URL, not specifying a username or password for JDBC access.
DriverManagerDataSource(String url, String username, String password)
          Create a new DriverManagerDataSource with the given standard DriverManager parameters.
DriverManagerDataSource(String driverClassName, String url, String username, String password, boolean autoCommit)
          Create a new DriverManagerDataSource with the given standard DriverManager parameters.
 
Method Summary
 boolean getAutoCommit()
          Returns the auto commit setting that a connection will be created
 Connection getConnection()
          This implementation delegates to getConnectionFromDriverManager, using the default username and password of this DataSource.
 Connection getConnection(String username, String password)
          This implementation delegates to getConnectionFromDriverManager, using the given username and password.
protected  Connection getConnectionFromDriverManager()
          Get a Connection from the DriverManager, using the default username and password of this DataSource.
protected  Connection getConnectionFromDriverManager(String url, String username, String password)
          Getting a connection using the nasty static from DriverManager is extracted into a protected method to allow for easy unit testing.
 String getDriverClassName()
          Return the JDBC driver class name, if any.
 String getPassword()
          Return the JDBC password to use for accessing the DriverManager.
 String getUrl()
          Return the JDBC URL to use for accessing the DriverManager.
 String getUsername()
          Return the JDBC username to use for accessing the DriverManager.
 void setAutoCommit(boolean autoCommit)
          Sets the auto commit setting that a connection will be created
 void setDriverClassName(String driverClassName)
          Set the JDBC driver class name.
 void setPassword(String password)
          Set the JDBC password to use for accessing the DriverManager.
 void setUrl(String url)
          Set the JDBC URL to use for accessing the DriverManager.
 void setUsername(String username)
          Set the JDBC username to use for accessing the DriverManager.
 
Methods inherited from class org.apache.lucene.store.jdbc.datasource.AbstractDataSource
getLoginTimeout, getLogWriter, isWrapperFor, setLoginTimeout, setLogWriter, unwrap
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

DriverManagerDataSource

public DriverManagerDataSource()
Constructor for bean-style configuration.


DriverManagerDataSource

public DriverManagerDataSource(String driverClassName,
                               String url,
                               String username,
                               String password,
                               boolean autoCommit)
Create a new DriverManagerDataSource with the given standard DriverManager parameters.

Parameters:
driverClassName - the JDBC driver class name
url - the JDBC URL to use for accessing the DriverManager
username - the JDBC username to use for accessing the DriverManager
password - the JDBC password to use for accessing the DriverManager
autoCommit - the default autoCommit value that will be set to created connections
See Also:
DriverManager.getConnection(String, String, String)

DriverManagerDataSource

public DriverManagerDataSource(String url,
                               String username,
                               String password)
Create a new DriverManagerDataSource with the given standard DriverManager parameters.

Note, the autoCommit will default to false.

Parameters:
url - the JDBC URL to use for accessing the DriverManager
username - the JDBC username to use for accessing the DriverManager
password - the JDBC password to use for accessing the DriverManager
See Also:
DriverManager.getConnection(String, String, String)

DriverManagerDataSource

public DriverManagerDataSource(String url)
Create a new DriverManagerDataSource with the given JDBC URL, not specifying a username or password for JDBC access.

Parameters:
url - the JDBC URL to use for accessing the DriverManager
See Also:
DriverManager.getConnection(String)
Method Detail

setDriverClassName

public void setDriverClassName(String driverClassName)
Set the JDBC driver class name. This driver will get initialized on startup, registering itself with the JDK's DriverManager.

Alternatively, consider initializing the JDBC driver yourself before instantiating this DataSource.

See Also:
Class.forName(String), DriverManager.registerDriver(java.sql.Driver)

getDriverClassName

public String getDriverClassName()
Return the JDBC driver class name, if any.


setUrl

public void setUrl(String url)
Set the JDBC URL to use for accessing the DriverManager.

See Also:
DriverManager.getConnection(String, String, String)

getUrl

public String getUrl()
Return the JDBC URL to use for accessing the DriverManager.


setUsername

public void setUsername(String username)
Set the JDBC username to use for accessing the DriverManager.

See Also:
DriverManager.getConnection(String, String, String)

getUsername

public String getUsername()
Return the JDBC username to use for accessing the DriverManager.


setPassword

public void setPassword(String password)
Set the JDBC password to use for accessing the DriverManager.

See Also:
DriverManager.getConnection(String, String, String)

getPassword

public String getPassword()
Return the JDBC password to use for accessing the DriverManager.


getAutoCommit

public boolean getAutoCommit()
Returns the auto commit setting that a connection will be created


setAutoCommit

public void setAutoCommit(boolean autoCommit)
Sets the auto commit setting that a connection will be created


getConnection

public Connection getConnection()
                         throws SQLException
This implementation delegates to getConnectionFromDriverManager, using the default username and password of this DataSource.

Throws:
SQLException
See Also:
getConnectionFromDriverManager()

getConnection

public Connection getConnection(String username,
                                String password)
                         throws SQLException
This implementation delegates to getConnectionFromDriverManager, using the given username and password.

Throws:
SQLException
See Also:
getConnectionFromDriverManager(String, String, String)

getConnectionFromDriverManager

protected Connection getConnectionFromDriverManager()
                                             throws SQLException
Get a Connection from the DriverManager, using the default username and password of this DataSource.

Throws:
SQLException
See Also:
getConnectionFromDriverManager(String, String, String)

getConnectionFromDriverManager

protected Connection getConnectionFromDriverManager(String url,
                                                    String username,
                                                    String password)
                                             throws SQLException
Getting a connection using the nasty static from DriverManager is extracted into a protected method to allow for easy unit testing.

Note, that it sets the auto commit to false

Throws:
SQLException
See Also:
DriverManager.getConnection(String, String, String)


Copyright (c) 2004-2009 The Compass Project.