org.biojava.bio.seq.db.biosql
Class DBHelper

java.lang.Object
  extended byorg.biojava.bio.seq.db.biosql.DBHelper
Direct Known Subclasses:
HypersonicDBHelper, MySQLDBHelper, OracleDBHelper, PostgreSQLDBHelper, UnknownDBHelper

public abstract class DBHelper
extends Object

Isolates all code that is specific to a particular RDBMS. To add support for a new RDBMS, write a new DBHelper subclass and ensure that it can be found by editing the getDBHelperForURL method in this class.

Author:
Thomas Down, Matthew Pocock, Len Trigg, Eric Haugen

Nested Class Summary
static class DBHelper.DeleteStyle
           
static class DBHelper.JoinStyle
           
 
Field Summary
static DBHelper.DeleteStyle DELETE_GENERIC
           
static DBHelper.DeleteStyle DELETE_MYSQL4
           
static DBHelper.DeleteStyle DELETE_POSTGRESQL
           
static DBHelper.JoinStyle JOIN_GENERIC
           
static DBHelper.JoinStyle JOIN_ORACLE8
           
 
Constructor Summary
DBHelper()
           
 
Method Summary
 boolean containsTable(DataSource ds, String tablename)
          Detects whether a particular table is present in the database.
static DBHelper getDBHelper(Connection conn)
          Returns a DBHelper implementation suitable for a particular database.
 DBHelper.DeleteStyle getDeleteStyle()
          Returns the an object indicating the style of deletion that this database should employ.
abstract  int getInsertID(Connection conn, String table, String columnName)
          Returns the id value created during the last insert command.
 DBHelper.JoinStyle getJoinStyle()
          Returns the an object indicating the style of table joining that this database should employ.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

DELETE_POSTGRESQL

public static final DBHelper.DeleteStyle DELETE_POSTGRESQL

DELETE_MYSQL4

public static final DBHelper.DeleteStyle DELETE_MYSQL4

DELETE_GENERIC

public static final DBHelper.DeleteStyle DELETE_GENERIC

JOIN_ORACLE8

public static final DBHelper.JoinStyle JOIN_ORACLE8

JOIN_GENERIC

public static final DBHelper.JoinStyle JOIN_GENERIC
Constructor Detail

DBHelper

public DBHelper()
Method Detail

getDBHelper

public static DBHelper getDBHelper(Connection conn)
Returns a DBHelper implementation suitable for a particular database.

Parameters:
conn - a connection to the database.
Returns:
a DBHelper.

getInsertID

public abstract int getInsertID(Connection conn,
                                String table,
                                String columnName)
                         throws SQLException
Returns the id value created during the last insert command. This is for tables that have an auto increment column.

Returns:
the last id assigned, or -1 if the id could not be found.
Throws:
SQLException

getDeleteStyle

public DBHelper.DeleteStyle getDeleteStyle()
Returns the an object indicating the style of deletion that this database should employ. Unless overridden, this is DELETE_GENERIC.

Returns:
the preferred deletion style.

getJoinStyle

public DBHelper.JoinStyle getJoinStyle()
Returns the an object indicating the style of table joining that this database should employ.

Returns:
the preferred joining style.

containsTable

public boolean containsTable(DataSource ds,
                             String tablename)
Detects whether a particular table is present in the database.

Parameters:
ds - a DataSource that can provide a connection to a database
tablename - the name of the table.
Returns:
true if the table exists in the database.
Throws:
NullPointerException - if pool is null.
IllegalArgumentException - if tablename is null or empty.