Interface DatabaseAdapter

All Known Implementing Classes:
AbstractDatabaseAdapter, H2DatabaseAdapter, MySQLDatabaseAdapter, PostgresDatabaseAdapter

public interface DatabaseAdapter
adapter for a database system
Author:
hendrik
  • Method Details

    • commit

      void commit() throws SQLException
      commits the current transaction
      Throws:
      SQLException - in case of an database error
    • rollback

      void rollback() throws SQLException
      rolls the current transaction back, undoing all the changes.
      Throws:
      SQLException - in case of an database error
    • execute

      int execute(String sql) throws SQLException
      executes an SQL statement
      Parameters:
      sql - sql-statement to execute
      Returns:
      number of affected rows
      Throws:
      SQLException - in case of an database error
    • execute

      int execute(String sql, InputStream... inputStreams) throws SQLException, IOException
      executes an SQL statement with streamed parameters
      Parameters:
      sql - sql-statement to execute
      inputStreams - parameters
      Returns:
      number of affected rows
      Throws:
      SQLException - in case of an database error
      IOException - in case the stream cannot be read to the end
    • executeBatch

      void executeBatch(String sql, InputStream... inputStreams) throws SQLException, IOException
      executes a batch of sql-statements
      Parameters:
      sql - sql-statement to execute
      inputStreams - a list of input stream. For each of them the statement is executed
      Throws:
      SQLException - in case of an database error
      IOException - in case one of the streams cannot be read to the end
    • query

      ResultSet query(String sql) throws SQLException
      queries the database for information
      Parameters:
      sql - sql-statement to execute
      Returns:
      ResultSet
      Throws:
      SQLException - in case of an database error
    • querySingleCellInt

      int querySingleCellInt(String sql) throws SQLException
      queries for a single row, single column integer response like a count-select
      Parameters:
      sql - sql-statement to execute
      Returns:
      integer of the first column in the first row
      Throws:
      SQLException - in case of an database error
    • getLastInsertId

      int getLastInsertId(String table, String idcolumn) throws SQLException
      gets the id of the last insert. Note: The table and idcolumn parameters must match the last insert statement. This is because on some database systems a SELECT IDENTITY is performed and on other database systems a SELECT curval(table_idcolumn_seq).
      Parameters:
      table - name of table on which the last insert was done
      idcolumn - name autoincrement serial column of that table
      Returns:
      generated id
      Throws:
      SQLException - in case of an database error
    • close

      void close() throws SQLException
      closes the database connection
      Throws:
      SQLException - in case of an database error
    • prepareStatement

      PreparedStatement prepareStatement(String sql) throws SQLException
      Prepares a statement for a batch operation.
      Parameters:
      sql - SQL statement
      Returns:
      PreparedStatement
      Throws:
      SQLException - in case of an database error
    • doesTableExist

      boolean doesTableExist(String table) throws SQLException
      checks whether the specified table exists
      Parameters:
      table - name of table
      Returns:
      true, if the table exists, false otherwise
      Throws:
      SQLException - in case of an database error
    • doesColumnExist

      boolean doesColumnExist(String table, String column) throws SQLException
      checks whether the specified column exists
      Parameters:
      table - name of table
      column - name of column
      Returns:
      true, if the column exists, false otherwise
      Throws:
      SQLException - in case of an database error
    • getColumnLength

      int getColumnLength(String table, String column) throws SQLException
      Gets the length of the specified column
      Parameters:
      table - name of table
      column - name of column
      Returns:
      the length of the column or -1 if no column with the given name in the given table exists
      Throws:
      SQLException - in case of an database error
    • verifyConnection

      boolean verifyConnection()
      verifies that the connection i still working
      Returns:
      true, if the connection is valid; false otherwise
    • isConnectionError

      boolean isConnectionError(Exception e)
      determine if the Exception indicates a connection error, so a retry of the transaction makes sense.
      Parameters:
      e - Exception
      Returns:
      true, if the exception indicates a connection error; false otherwise