org.openstreetmap.osmosis.core.pgsql.common
Class DatabaseContext

java.lang.Object
  extended by org.openstreetmap.osmosis.core.pgsql.common.DatabaseContext

public class DatabaseContext
extends java.lang.Object

This class manages the lifecycle of JDBC objects to minimise the risk of connection leaks and to support a consistent approach to database access.

Author:
Brett Henderson

Constructor Summary
DatabaseContext(DatabaseLoginCredentials loginCredentials)
          Creates a new instance.
 
Method Summary
 void commit()
          Commits any outstanding transaction.
 java.sql.Statement createStatement()
          Creates a new database statement.
 boolean doesColumnExist(java.lang.String tableName, java.lang.String columnName)
          Indicates if the specified column exists in the database.
 boolean doesTableExist(java.lang.String tableName)
          Indicates if the specified table exists in the database.
 java.sql.ResultSet executeQuery(java.lang.String sql)
          Executes a query and returns a result set.
 void executeStatement(java.lang.String sql)
          Executes a sql statement against the database.
protected  void finalize()
          Enforces cleanup of any remaining resources during garbage collection.
 java.sql.CallableStatement prepareCall(java.lang.String sql)
          Creates a new database callable statement.
 java.sql.PreparedStatement prepareStatement(java.lang.String sql)
          Creates a new database prepared statement.
 void release()
          Releases all database resources.
 void setAutoCommit(boolean autoCommit)
          Sets the auto-commit property on the underlying connection.
 
Methods inherited from class java.lang.Object
clone, equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

DatabaseContext

public DatabaseContext(DatabaseLoginCredentials loginCredentials)
Creates a new instance.

Parameters:
loginCredentials - Contains all information required to connect to the database.
Method Detail

executeStatement

public void executeStatement(java.lang.String sql)
Executes a sql statement against the database.

Parameters:
sql - The sql statement to be invoked.

prepareStatement

public java.sql.PreparedStatement prepareStatement(java.lang.String sql)
Creates a new database prepared statement.

Parameters:
sql - The statement to be created.
Returns:
The newly created statement.

prepareCall

public java.sql.CallableStatement prepareCall(java.lang.String sql)
Creates a new database callable statement.

Parameters:
sql - The statement to be created.
Returns:
The newly created statement.

createStatement

public java.sql.Statement createStatement()
Creates a new database statement.

Returns:
The newly created statement.

executeQuery

public java.sql.ResultSet executeQuery(java.lang.String sql)
Executes a query and returns a result set. The returned result set must be closed by the caller.

Parameters:
sql - The query to execute.
Returns:
The newly created result set.

doesColumnExist

public boolean doesColumnExist(java.lang.String tableName,
                               java.lang.String columnName)
Indicates if the specified column exists in the database.

Parameters:
tableName - The table to check for.
columnName - The column to check for.
Returns:
True if the column exists, false otherwise.

doesTableExist

public boolean doesTableExist(java.lang.String tableName)
Indicates if the specified table exists in the database.

Parameters:
tableName - The table to check for.
Returns:
True if the table exists, false otherwise.

setAutoCommit

public void setAutoCommit(boolean autoCommit)
Sets the auto-commit property on the underlying connection.

Parameters:
autoCommit - The new auto commit value.

commit

public void commit()
Commits any outstanding transaction.


release

public void release()
Releases all database resources. This method is guaranteed not to throw transactions and should always be called in a finally block whenever this class is used.


finalize

protected void finalize()
                 throws java.lang.Throwable
Enforces cleanup of any remaining resources during garbage collection. This is a safeguard and should not be required if release is called appropriately.

Overrides:
finalize in class java.lang.Object
Throws:
java.lang.Throwable - if an unexpected problem occurs during finalization.