com.irisel.oms.dbh
Class Dbh

java.lang.Object
  extended by com.irisel.oms.dbh.Dbh
All Implemented Interfaces:
DBHandler
Direct Known Subclasses:
DbhMySql, DbhMySqlDS, DbhOdbc, DbhOracle, DbhPointbase

public abstract class Dbh
extends java.lang.Object
implements DBHandler

This class is an abstract Database Handler used to get the connection with the database, send queries, spooling, etc.


Field Summary
static java.lang.String KEY_FETCH_SIZE
           
 
Constructor Summary
Dbh()
           
 
Method Summary
 boolean begin()
           
abstract  void close()
          For data source-based implementations that need to return the connection to a pool after each operation.
 boolean commit()
           
abstract  void connect(java.lang.String url)
           
 void connect(java.lang.String url, java.lang.String user, java.lang.String password)
           
 void connect(java.lang.String host, java.lang.String port, java.lang.String db, java.lang.String dbuser, java.lang.String dbpasswd)
          Connects to database
 void connect(java.lang.String host, java.lang.String port, java.lang.String dbName, java.lang.String schema, java.lang.String dbUser, java.lang.String dbPasswd)
           
 void disconnect()
          Disconnects from database
 boolean execute(Query q)
          Executes the given query over existing db connection.
 boolean execute(java.lang.String s)
          Executes the given query over existing db connection.
 java.lang.Object executeQuery(Query q, boolean valuesFormatted, ResultsHandler processor)
           
 java.lang.Object executeQuery(Query q, ResultsHandler p)
          Executes the given query over existing db connection.
 java.lang.Object executeQuery(java.lang.String s, ResultsHandler processor)
          Executes the given query over existing db connection.
 int executeUpdate(Query q)
           
 int executeUpdate(java.lang.String s)
          Executes the given query over existing db connection.
 void finalize()
           
 byte[] getBlob(java.sql.ResultSet rs, java.lang.String col)
           
 java.sql.Connection getConnection()
          Returns current connection.
 java.sql.DatabaseMetaData getDatabaseMetaData()
          Returns Database MetaData.
 java.lang.String getDbName()
           
 java.lang.String getDbPasswd()
           
 java.lang.String getDbUser()
           
 java.lang.String getHost()
           
 java.lang.String getPort()
           
 java.lang.String getSchema()
          Getter for property schema.
 java.util.Vector getTableNames(java.lang.String tableNamePattern, java.lang.String[] types)
          Returns a ResultSet from table whose name matches tableName
 void getTables(java.lang.String tableNamePattern, ResultsHandler processor)
          Returns a ResultSet from table whose name matches tableName
 boolean isConnected()
           
 void loadDriver(java.lang.String driver)
           
abstract  java.lang.String makeURL(java.lang.String host, java.lang.String port, java.lang.String db, java.lang.String dbuser, java.lang.String dbpasswd)
          Constructs URL following the format accepted by the corresponding JDBC driver
 void reconnect()
          Reconnects to database
static java.lang.String ResultSetToText(java.sql.ResultSet rset)
          Returns a String representation of a ResultSet object
static java.util.Vector ResultSetToVector(java.sql.ResultSet rset, int i)
          Returns a Vector containing i-th column of a ResultSet.
 boolean rollback()
           
 int saveBlob(java.sql.PreparedStatement pstmt, int colBlob, byte[] data)
           
 void setDbName(java.lang.String dbName)
           
 void setDbPasswd(java.lang.String dbPasswd)
           
 void setDbUser(java.lang.String dbUser)
           
 void setHost(java.lang.String host)
           
 void setPort(java.lang.String port)
           
 void setSchema(java.lang.String schema)
          Setter for property schema.
 java.lang.String toString()
          Returns a String with database and driver information.
 
Methods inherited from class java.lang.Object
equals, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

KEY_FETCH_SIZE

public static final java.lang.String KEY_FETCH_SIZE
See Also:
Constant Field Values
Constructor Detail

Dbh

public Dbh()
Method Detail

makeURL

public abstract java.lang.String makeURL(java.lang.String host,
                                         java.lang.String port,
                                         java.lang.String db,
                                         java.lang.String dbuser,
                                         java.lang.String dbpasswd)
Constructs URL following the format accepted by the corresponding JDBC driver


finalize

public void finalize()
Overrides:
finalize in class java.lang.Object

getDbName

public java.lang.String getDbName()
Specified by:
getDbName in interface DBHandler

setDbName

public void setDbName(java.lang.String dbName)

getDbPasswd

public java.lang.String getDbPasswd()
Specified by:
getDbPasswd in interface DBHandler

setDbPasswd

public void setDbPasswd(java.lang.String dbPasswd)

getDbUser

public java.lang.String getDbUser()
Specified by:
getDbUser in interface DBHandler

setDbUser

public void setDbUser(java.lang.String dbUser)

getHost

public java.lang.String getHost()
Specified by:
getHost in interface DBHandler

setHost

public void setHost(java.lang.String host)

getPort

public java.lang.String getPort()
Specified by:
getPort in interface DBHandler

setPort

public void setPort(java.lang.String port)

getTables

public void getTables(java.lang.String tableNamePattern,
                      ResultsHandler processor)
               throws java.sql.SQLException
Returns a ResultSet from table whose name matches tableName

Specified by:
getTables in interface DBHandler
Parameters:
tableName - name of the table.
Throws:
java.sql.SQLException

getTableNames

public java.util.Vector getTableNames(java.lang.String tableNamePattern,
                                      java.lang.String[] types)
                               throws java.sql.SQLException
Returns a ResultSet from table whose name matches tableName

Specified by:
getTableNames in interface DBHandler
Parameters:
tableName - name pattern of the table.
types - types of the tables (e.g. TABLE, VIEW)
Throws:
java.sql.SQLException

executeQuery

public java.lang.Object executeQuery(java.lang.String s,
                                     ResultsHandler processor)
                              throws java.sql.SQLException
Executes the given query over existing db connection. The client MUST return the connection afterwards (Dbh.close())

Specified by:
executeQuery in interface DBHandler
Parameters:
s - String with a SQL query.
Throws:
java.sql.SQLException

executeUpdate

public int executeUpdate(java.lang.String s)
                  throws java.sql.SQLException
Executes the given query over existing db connection.

Specified by:
executeUpdate in interface DBHandler
Parameters:
s - String with a SQL query.
Throws:
java.sql.SQLException

execute

public boolean execute(java.lang.String s)
                throws java.sql.SQLException
Executes the given query over existing db connection.

Specified by:
execute in interface DBHandler
Parameters:
s - String with a SQL query.
Throws:
java.sql.SQLException

executeQuery

public java.lang.Object executeQuery(Query q,
                                     ResultsHandler p)
                              throws java.sql.SQLException
Executes the given query over existing db connection.

Specified by:
executeQuery in interface DBHandler
Parameters:
q - com.irisel.oms.sql.Query
Throws:
java.sql.SQLException

executeQuery

public java.lang.Object executeQuery(Query q,
                                     boolean valuesFormatted,
                                     ResultsHandler processor)
                              throws java.sql.SQLException
Specified by:
executeQuery in interface DBHandler
Throws:
java.sql.SQLException

execute

public boolean execute(Query q)
                throws java.sql.SQLException
Executes the given query over existing db connection.

Specified by:
execute in interface DBHandler
Parameters:
q - com.irisel.oms.sql.Query
Throws:
java.sql.SQLException

executeUpdate

public int executeUpdate(Query q)
                  throws java.sql.SQLException
Specified by:
executeUpdate in interface DBHandler
Throws:
java.sql.SQLException

getBlob

public byte[] getBlob(java.sql.ResultSet rs,
                      java.lang.String col)
               throws java.sql.SQLException
Throws:
java.sql.SQLException

saveBlob

public int saveBlob(java.sql.PreparedStatement pstmt,
                    int colBlob,
                    byte[] data)
             throws java.sql.SQLException
Throws:
java.sql.SQLException

getConnection

public java.sql.Connection getConnection()
Returns current connection.

Specified by:
getConnection in interface DBHandler
Parameters:
q - com.irisel.oms.sql.Query

getDatabaseMetaData

public java.sql.DatabaseMetaData getDatabaseMetaData()
Returns Database MetaData.

Specified by:
getDatabaseMetaData in interface DBHandler

close

public abstract void close()
For data source-based implementations that need to return the connection to a pool after each operation.

Specified by:
close in interface DBHandler

toString

public java.lang.String toString()
Returns a String with database and driver information.

Overrides:
toString in class java.lang.Object

ResultSetToText

public static java.lang.String ResultSetToText(java.sql.ResultSet rset)
                                        throws java.sql.SQLException
Returns a String representation of a ResultSet object

Parameters:
rset - ResultSet
Throws:
java.sql.SQLException

ResultSetToVector

public static java.util.Vector ResultSetToVector(java.sql.ResultSet rset,
                                                 int i)
                                          throws java.sql.SQLException
Returns a Vector containing i-th column of a ResultSet.

Parameters:
rset - ResultSet
i - index of requested column
Throws:
java.sql.SQLException

disconnect

public void disconnect()
Disconnects from database

Specified by:
disconnect in interface DBHandler

reconnect

public void reconnect()
Reconnects to database

Specified by:
reconnect in interface DBHandler

connect

public void connect(java.lang.String host,
                    java.lang.String port,
                    java.lang.String db,
                    java.lang.String dbuser,
                    java.lang.String dbpasswd)
             throws ConnectionException
Connects to database

Specified by:
connect in interface DBHandler
Throws:
java.sql.SQLException
ConnectionException

connect

public void connect(java.lang.String host,
                    java.lang.String port,
                    java.lang.String dbName,
                    java.lang.String schema,
                    java.lang.String dbUser,
                    java.lang.String dbPasswd)
             throws ConnectionException
Throws:
ConnectionException

connect

public abstract void connect(java.lang.String url)
                      throws ConnectionException
Specified by:
connect in interface DBHandler
Throws:
ConnectionException

connect

public void connect(java.lang.String url,
                    java.lang.String user,
                    java.lang.String password)
             throws ConnectionException
Throws:
ConnectionException

isConnected

public boolean isConnected()
                    throws ConnectionException
Specified by:
isConnected in interface DBHandler
Throws:
ConnectionException

loadDriver

public void loadDriver(java.lang.String driver)
                throws java.lang.ClassNotFoundException
Specified by:
loadDriver in interface DBHandler
Throws:
java.lang.ClassNotFoundException

getSchema

public java.lang.String getSchema()
Getter for property schema.

Specified by:
getSchema in interface DBHandler
Returns:
Value of property schema.

setSchema

public void setSchema(java.lang.String schema)
Setter for property schema.

Specified by:
setSchema in interface DBHandler
Parameters:
schema - New value of property schema.

begin

public boolean begin()
              throws java.sql.SQLException
Specified by:
begin in interface DBHandler
Throws:
java.sql.SQLException

commit

public boolean commit()
               throws java.sql.SQLException
Specified by:
commit in interface DBHandler
Throws:
java.sql.SQLException

rollback

public boolean rollback()
Specified by:
rollback in interface DBHandler