Package org.apache.torque.adapter
Class DerbyAdapter
- java.lang.Object
-
- org.apache.torque.adapter.AbstractAdapter
-
- org.apache.torque.adapter.DerbyAdapter
-
- All Implemented Interfaces:
Serializable,Adapter
public class DerbyAdapter extends AbstractAdapter
This is used to connect to an embedded Apache Derby Database using the supplied JDBC driver.- Version:
- $Id: DerbyAdapter.java 1850591 2019-01-06 19:00:34Z tv $
- Author:
- Henning P. Schmiedehausen, tins
- See Also:
- Serialized Form
-
-
Field Summary
-
Fields inherited from interface org.apache.torque.adapter.Adapter
ADAPTER_KEY, AUTODETECT_ADAPTER, DRIVER_KEY
-
-
Constructor Summary
Constructors Modifier Constructor Description protectedDerbyAdapter()Empty constructor.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description booleanescapeText()Whether backslashes (\) should be escaped in explicit SQL strings.voidgenerateLimits(Query query, long offset, int limit)Build Derby-style query with limit or offset.StringgetIDMethodSQL(Object obj)Returns the SQL to get the database key of the last row inserted, which in this case isVALUES IDENTITY_VAL_LOCAL().IDMethodgetIDMethodType()Returns the constant from theIDMethodinterface denoting which type of primary key generation method this type of RDBMS uses.StringignoreCase(String str)This method is used to ignore case.voidlockTable(Connection con, String table)Locks the specified table.StringtoUpperCase(String str)This method is used to ignore case.voidunlockTable(Connection con, String table)Unlocks the specified table.booleanuseEscapeClauseForLike()Whether an escape clause in like should be used.booleanuseGetGeneratedKeys()Derby supports this feature but does not report it via JDBC-
Methods inherited from class org.apache.torque.adapter.AbstractAdapter
getStringDelimiter, getUpdateLockClause, ignoreCaseInOrderBy, setCapabilities, supportsNativeLimit, supportsNativeOffset, useIlike, useMinusForExcept
-
-
-
-
Method Detail
-
toUpperCase
public String toUpperCase(String str)
This method is used to ignore case.- Specified by:
toUpperCasein interfaceAdapter- Specified by:
toUpperCasein classAbstractAdapter- Parameters:
str- The string to transform to upper case.- Returns:
- The upper case string.
-
ignoreCase
public String ignoreCase(String str)
This method is used to ignore case.- Specified by:
ignoreCasein interfaceAdapter- Specified by:
ignoreCasein classAbstractAdapter- Parameters:
str- The string whose case to ignore.- Returns:
- The string in a case that can be ignored.
-
getIDMethodType
public IDMethod getIDMethodType()
Description copied from class:AbstractAdapterReturns the constant from theIDMethodinterface denoting which type of primary key generation method this type of RDBMS uses.- Specified by:
getIDMethodTypein interfaceAdapter- Specified by:
getIDMethodTypein classAbstractAdapter- Returns:
- IDMethod constant
- See Also:
Adapter.getIDMethodType()
-
getIDMethodSQL
public String getIDMethodSQL(Object obj)
Returns the SQL to get the database key of the last row inserted, which in this case isVALUES IDENTITY_VAL_LOCAL().- Specified by:
getIDMethodSQLin interfaceAdapter- Specified by:
getIDMethodSQLin classAbstractAdapter- Parameters:
obj- Information used for key generation.- Returns:
- The most recently inserted database key.
- See Also:
Adapter.getIDMethodSQL(Object obj)
-
lockTable
public void lockTable(Connection con, String table) throws SQLException
Locks the specified table.- Specified by:
lockTablein interfaceAdapter- Specified by:
lockTablein classAbstractAdapter- Parameters:
con- The JDBC connection to use.table- The name of the table to lock.- Throws:
SQLException- No Statement could be created or executed.
-
unlockTable
public void unlockTable(Connection con, String table) throws SQLException
Unlocks the specified table.- Specified by:
unlockTablein interfaceAdapter- Specified by:
unlockTablein classAbstractAdapter- Parameters:
con- The JDBC connection to use.table- The name of the table to unlock.- Throws:
SQLException- No Statement could be created or executed.
-
escapeText
public boolean escapeText()
Whether backslashes (\) should be escaped in explicit SQL strings. If true is returned, a BACKSLASH will be changed to "\\". If false is returned, a BACKSLASH will be left as "\". As derby does not need escaping of Backslashes, this method always returns false.- Specified by:
escapeTextin interfaceAdapter- Overrides:
escapeTextin classAbstractAdapter- Returns:
- true if the database needs to escape backslashes in SqlExpressions.
-
useEscapeClauseForLike
public boolean useEscapeClauseForLike()
Whether an escape clause in like should be used. Example : select * from AUTHOR where AUTHOR.NAME like '\_%' ESCAPE '\'; Derby needs this, so this implementation always returnstrue.- Specified by:
useEscapeClauseForLikein interfaceAdapter- Overrides:
useEscapeClauseForLikein classAbstractAdapter- Returns:
- whether the escape clause should be appended or not.
-
useGetGeneratedKeys
public boolean useGetGeneratedKeys()
Derby supports this feature but does not report it via JDBC- Specified by:
useGetGeneratedKeysin interfaceAdapter- Overrides:
useGetGeneratedKeysin classAbstractAdapter- Returns:
- a
booleanvalue - See Also:
AbstractAdapter.useGetGeneratedKeys()
-
generateLimits
public void generateLimits(Query query, long offset, int limit)
Build Derby-style query with limit or offset. The resulting query may look like this:select * from TABLENAME fetch next 3 rows only; select * from TABLENAME offset 3 rows fetch next 3 rows only;
- Specified by:
generateLimitsin interfaceAdapter- Overrides:
generateLimitsin classAbstractAdapter- Parameters:
query- The query to modify.offset- the offset value.limit- the limit value.
-
-