Package 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
Description
`static final org.eclipse.net4j.util.registry.IRegistry<String,IDBAdapter>`
`REGISTRY`

## Method Summary

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

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

### sqlCharIndex

String sqlCharIndex(Object substring, Object string)

Since:
  4.13

### sqlSubstring

String sqlSubstring(Object string, Object startIndex, Object length)

Since:
  4.13

### sqlSubstring

String sqlSubstring(Object string, Object startIndex)

Since:
  4.13

### sqlConcat

String sqlConcat(Object... strings)

Since:
  4.13

### 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).