org.eclipse.net4j.db

## 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 Summary

    Fields
    Modifier and Type | Field and Description
    --- | ---
    `static IRegistry<java.lang.String,IDBAdapter>` | `REGISTRY`

  - ### Method Summary

    All Methods Instance Methods Abstract Methods Deprecated Methods
    Modifier and Type | Method and Description
    --- | ---
    `DBType` | `adaptType(DBType type)` Provide a way for the DBAdapter to override unsupported DB types with replacements.
    `IDBConnectionProvider` | `createConnectionProvider(javax.sql.DataSource dataSource)`
    `javax.sql.DataSource` | `createJDBCDataSource()` Deprecated. As of 4.2 no longer supported because of IP issues for external build dependencies (the vendor driver libs).
    `boolean` | `createTable(IDBTable table, java.sql.Statement statement)`
    `java.util.Set<IDBTable>` | `createTables(java.lang.Iterable<? extends IDBTable> tables, java.sql.Connection connection)`
    `boolean` | `dropTable(IDBTable table, java.sql.Statement statement)`
    `java.util.Collection<IDBTable>` | `dropTables(java.lang.Iterable<? extends IDBTable> tables, java.sql.Connection connection)`
    `int` | `getFieldLength(DBType type)` Returns the column length for the given database type.
    `java.sql.Driver` | `getJDBCDriver()` Deprecated. As of 4.2 no longer supported because of IP issues for external build dependencies (the vendor driver libs).
    `int` | `getMaxFieldNameLength()`
    `int` | `getMaxTableNameLength()`
    `java.lang.String` | `getName()`
    `java.lang.String[]` | `getReservedWords()`
    `java.lang.String` | `getVersion()`
    `boolean` | `isColumnNotFoundException(java.sql.SQLException ex)`
    `boolean` | `isDuplicateKeyException(java.sql.SQLException ex)` Check if an exception indicates a constraint violation (duplicate key)
    `boolean` | `isReservedWord(java.lang.String word)`
    `boolean` | `isTableNotFoundException(java.sql.SQLException ex)`
    `boolean` | `isTypeIndexable(DBType type)`
    `boolean` | `isValidFirstChar(char ch)` Check if a character is valid as first character.
    `java.sql.Connection` | `modifyConnection(java.sql.Connection connection)`
    `void` | `readSchema(java.sql.Connection connection, IDBSchema schema)`
    `IDBSchema` | `readSchema(java.sql.Connection connection, java.lang.String name)`
    `java.lang.String` | `sqlModifyField(IDBField field)`
    `java.lang.String` | `sqlRenameField(IDBField field, java.lang.String oldName)`
    `void` | `updateSchema(java.sql.Connection connection, IDBSchema schema, IDBSchemaDelta delta)`

- - ### Field Detail

    - #### REGISTRY

          static final IRegistry<java.lang.String,IDBAdapter> REGISTRY

  - ### Method Detail

    - #### getName

          java.lang.String getName()

    - #### getVersion

          java.lang.String getVersion()

    - #### getJDBCDriver

          @Deprecated
          java.sql.Driver getJDBCDriver()

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

    - #### createJDBCDataSource

          @Deprecated
          javax.sql.DataSource createJDBCDataSource()

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

    - #### createConnectionProvider

          IDBConnectionProvider createConnectionProvider(javax.sql.DataSource dataSource)

      Since:
        4.3

    - #### modifyConnection

          java.sql.Connection modifyConnection(java.sql.Connection connection)

      Since:
        4.5

    - #### readSchema

          IDBSchema readSchema(java.sql.Connection connection,
                               java.lang.String name)

      Since:
        4.2

    - #### readSchema

          void readSchema(java.sql.Connection connection,
                          IDBSchema schema)

      Since:
        4.2

    - #### updateSchema

          void updateSchema(java.sql.Connection connection,
                            IDBSchema schema,
                            IDBSchemaDelta delta)
                     throws DBException

      Throws:
        `DBException`
      Since:
        4.2

    - #### createTables

          java.util.Set<IDBTable> createTables(java.lang.Iterable<? extends IDBTable> tables,
                                               java.sql.Connection connection)
                                        throws DBException

      Throws:
        `DBException`

    - #### createTable

          boolean createTable(IDBTable table,
                              java.sql.Statement statement)
                       throws DBException

      Throws:
        `DBException`

    - #### dropTables

          java.util.Collection<IDBTable> dropTables(java.lang.Iterable<? extends IDBTable> tables,
                                                    java.sql.Connection connection)
                                             throws DBException

      Throws:
        `DBException`

    - #### dropTable

          boolean dropTable(IDBTable table,
                            java.sql.Statement statement)

    - #### getReservedWords

          java.lang.String[] getReservedWords()

    - #### isReservedWord

          boolean isReservedWord(java.lang.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(java.sql.SQLException ex)

      Check if an exception indicates a constraint violation (duplicate key)
      Since:
        4.0

    - #### isTableNotFoundException

          boolean isTableNotFoundException(java.sql.SQLException ex)

      Since:
        4.2

    - #### isColumnNotFoundException

          boolean isColumnNotFoundException(java.sql.SQLException ex)

      Since:
        4.2

    - #### sqlRenameField

          java.lang.String sqlRenameField(IDBField field,
                                          java.lang.String oldName)

      Since:
        4.2

    - #### sqlModifyField

          java.lang.String sqlModifyField(IDBField field)

      Since:
        4.2

Copyright (c) 2014 Eike Stepper (Berlin, Germany) and others.
All rights reserved. This program and the accompanying materials are made available under the terms of the Eclipse Public License v1.0 which accompanies this distribution, and is available at http://www.eclipse.org/legal/epl-v10.html