Interface IDBAdapter

All Known Implementing Classes:
DBAdapter, DerbyAdapter, EmbeddedDerbyAdapter, H2Adapter, HSQLDBAdapter, MYSQLAdapter, PostgreSQLAdapter

public interface IDBAdapter
Abstracts all aspects of a database that are vendor-specific.
Author:
Eike Stepper
No Implement
This interface is not intended to be implemented by clients. Subclass DBAdapter instead.
  • Field Details

    • REGISTRY

      static final org.eclipse.net4j.util.registry.IRegistry<String,IDBAdapter> REGISTRY
  • Method Details

    • getName

      String getName()
    • getVersion

      String getVersion()
    • isCaseSensitive

      boolean isCaseSensitive()
      Since:
      4.12
    • getDefaultSchemaName

      String getDefaultSchemaName(Connection connection)
      Since:
      4.12
    • createConnectionProvider

      IDBConnectionProvider createConnectionProvider(DataSource dataSource)
      Since:
      4.3
    • modifyConnection

      Connection modifyConnection(Connection connection)
      Since:
      4.5
    • createSchema

      void createSchema(Connection connection, String schemaName)
      Since:
      4.12
    • readSchema

      IDBSchema readSchema(Connection connection, String name)
      Since:
      4.2
    • readSchema

      void readSchema(Connection connection, IDBSchema schema)
      Since:
      4.2
    • updateSchema

      void updateSchema(Connection connection, IDBSchema schema, IDBSchemaDelta delta) throws DBException
      Throws:
      DBException
      Since:
      4.2
    • createTables

      Set<IDBTable> createTables(Iterable<? extends IDBTable> tables, Connection connection) throws DBException
      Throws:
      DBException
    • createTable

      boolean createTable(IDBTable table, Statement statement) throws DBException
      Throws:
      DBException
    • dropTables

      Collection<IDBTable> dropTables(Iterable<? extends IDBTable> tables, Connection connection) throws DBException
      Throws:
      DBException
    • dropTable

      boolean dropTable(IDBTable table, Statement statement)
    • getReservedWords

      String[] getReservedWords()
    • isReservedWord

      boolean isReservedWord(String word)
    • getMaxTableNameLength

      int getMaxTableNameLength()
      Since:
      2.0
    • getMaxFieldNameLength

      int getMaxFieldNameLength()
      Since:
      2.0
    • getFieldLength

      int getFieldLength(DBType type)
      Returns the column length for the given database type.
      Parameters:
      type - the DBType to check.
      Returns:
      the supported column length for the type.
      Since:
      4.2
    • isTypeIndexable

      boolean isTypeIndexable(DBType type)
    • adaptType

      DBType adaptType(DBType type)
      Provide a way for the DBAdapter to override unsupported DB types with replacements. The default implementation just returns the given type. Subclasses may override single types with replacements.
      Since:
      3.0
    • isValidFirstChar

      boolean isValidFirstChar(char ch)
      Check if a character is valid as first character. (e.g., underscores are forbidden as first character in Derby elements.
      Since:
      4.0
    • isDuplicateKeyException

      boolean isDuplicateKeyException(SQLException ex)
      Check if an exception indicates a constraint violation (duplicate key)
      Since:
      4.0
    • isTableNotFoundException

      boolean isTableNotFoundException(SQLException ex)
      Since:
      4.2
    • isColumnNotFoundException

      boolean isColumnNotFoundException(SQLException ex)
      Since:
      4.2
    • sqlRenameField

      String sqlRenameField(IDBField field, String oldName)
      Since:
      4.2
    • sqlModifyField

      String sqlModifyField(IDBField field)
      Since:
      4.2
    • getJDBCDriver

      @Deprecated Driver getJDBCDriver()
      Deprecated.
      As of 4.2 no longer supported because of IP issues for external build dependencies (the vendor driver libs).
    • createJDBCDataSource

      @Deprecated DataSource createJDBCDataSource()
      Deprecated.
      As of 4.2 no longer supported because of IP issues for external build dependencies (the vendor driver libs).