public interface Adapter extends Serializable
DB
defines the interface for a Torque database
adapter. Support for new databases is added by implementing this
interface. A couple of default settings is provided by
subclassing AbstractDBAdapter
. The new database adapter
and its corresponding JDBC driver need to be registered in the service
configuration file.
The Torque database adapters exist to present a uniform interface to database access across all available databases. Once the necessary adapters have been written and configured, transparent swapping of databases is theoretically supported with zero code changes and minimal configuration file modifications. All database adapters need to be thread safe, as they are instantiated only once fore a given configured database and may be accessed simultaneously from several threads. *
Modifier and Type | Field and Description |
---|---|
static String |
ADAPTER_KEY
Key for the configuration which contains database adapters.
|
static String |
AUTODETECT_ADAPTER
Special adapter for auto-detection.
|
static String |
DRIVER_KEY
Key for the configuration which contains database drivers.
|
Modifier and Type | Method and Description |
---|---|
boolean |
escapeText()
Determines whether backslashes (\) should be escaped in explicit SQL
strings.
|
void |
generateLimits(Query query,
long offset,
int limit)
This method is used to generate the database specific query
extension to limit the number of record returned.
|
String |
getIDMethodSQL(Object obj)
Returns SQL used to get the most recently inserted primary key.
|
IDMethod |
getIDMethodType()
Returns the constant from the
IDMethod interface denoting which
type of primary key generation method this type of RDBMS uses. |
char |
getStringDelimiter()
Returns the character used to indicate the beginning and end of
a piece of text used in a SQL statement (generally a single
quote).
|
String |
getUpdateLockClause()
Returns the clause which acquires a write lock on a row
when doing a select.
|
String |
ignoreCase(String in)
Wraps the input string in a database function to change it to
a case-insensitive representation.
|
String |
ignoreCaseInOrderBy(String in)
This method is used to ignore case in an ORDER BY clause.
|
void |
lockTable(Connection con,
String table)
Locks the specified table.
|
void |
setCapabilities(DatabaseMetaData dmd)
Update static capabilities of the adapter with actual
readings based on the JDBC meta-data
|
boolean |
supportsNativeLimit()
This method is used to check whether the database natively
supports limiting the size of the resultset.
|
boolean |
supportsNativeOffset()
This method is used to check whether the database natively
supports returning results starting at an offset position other
than 0.
|
String |
toUpperCase(String in)
Wraps the input string in a database function to change it to upper case.
|
void |
unlockTable(Connection con,
String table)
Unlocks the specified table.
|
boolean |
useEscapeClauseForLike()
Whether an escape clause in like should be used.
|
boolean |
useGetGeneratedKeys()
whether Statement#getGeneratedKeys() should be used.
|
boolean |
useIlike()
Whether ILIKE should be used for case insensitive like clauses.
|
boolean |
useMinusForExcept()
Whether to use the MINUS operator instead of the EXCEPT operator.
|
static final String ADAPTER_KEY
static final String DRIVER_KEY
static final String AUTODETECT_ADAPTER
String toUpperCase(String in)
in
- The string to transform to upper case, may be a literal string,
a prepared statement replacement placeholder(*) or any other
database expression.char getStringDelimiter()
IDMethod getIDMethodType()
IDMethod
interface denoting which
type of primary key generation method this type of RDBMS uses.String getIDMethodSQL(Object obj)
null
.obj
- Information used for key generation.String getUpdateLockClause()
void lockTable(Connection con, String table) throws SQLException
con
- The JDBC connection to use.table
- The name of the table to lock.SQLException
- No Statement could be created or executed.void unlockTable(Connection con, String table) throws SQLException
con
- The JDBC connection to use.table
- The name of the table to unlock.SQLException
- No Statement could be created or executed.String ignoreCase(String in)
in
- The string to transform to a case-insensitive representation,
may be a literal string, a prepared statement replacement
placeholder(*) or any other database expression.String ignoreCaseInOrderBy(String in)
in
- The string whose case to ignore.boolean supportsNativeLimit()
boolean supportsNativeOffset()
void generateLimits(Query query, long offset, int limit) throws TorqueException
query
- The query to modifyoffset
- the offset Valuelimit
- the limit ValueTorqueException
- if any error occurs when building the queryboolean escapeText()
boolean useIlike()
boolean useEscapeClauseForLike()
boolean useMinusForExcept()
boolean useGetGeneratedKeys()
boolean
valuevoid setCapabilities(DatabaseMetaData dmd) throws SQLException
dmd
- database meta dataSQLException
- if there are problems getting the JDBC meta dataCopyright © 2000–2020 The Apache Software Foundation. All rights reserved.