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 protected
DerbyAdapter()
Empty constructor.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description boolean
escapeText()
Whether backslashes (\) should be escaped in explicit SQL strings.void
generateLimits(Query query, long offset, int limit)
Build Derby-style query with limit or offset.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()
.IDMethod
getIDMethodType()
Returns the constant from theIDMethod
interface denoting which type of primary key generation method this type of RDBMS uses.String
ignoreCase(String str)
This method is used to ignore case.void
lockTable(Connection con, String table)
Locks the specified table.String
toUpperCase(String str)
This method is used to ignore case.void
unlockTable(Connection con, String table)
Unlocks the specified table.boolean
useEscapeClauseForLike()
Whether an escape clause in like should be used.boolean
useGetGeneratedKeys()
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:
toUpperCase
in interfaceAdapter
- Specified by:
toUpperCase
in 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:
ignoreCase
in interfaceAdapter
- Specified by:
ignoreCase
in 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:AbstractAdapter
Returns the constant from theIDMethod
interface denoting which type of primary key generation method this type of RDBMS uses.- Specified by:
getIDMethodType
in interfaceAdapter
- Specified by:
getIDMethodType
in 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:
getIDMethodSQL
in interfaceAdapter
- Specified by:
getIDMethodSQL
in 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:
lockTable
in interfaceAdapter
- Specified by:
lockTable
in 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:
unlockTable
in interfaceAdapter
- Specified by:
unlockTable
in 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:
escapeText
in interfaceAdapter
- Overrides:
escapeText
in 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:
useEscapeClauseForLike
in interfaceAdapter
- Overrides:
useEscapeClauseForLike
in 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:
useGetGeneratedKeys
in interfaceAdapter
- Overrides:
useGetGeneratedKeys
in classAbstractAdapter
- Returns:
- a
boolean
value - 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:
generateLimits
in interfaceAdapter
- Overrides:
generateLimits
in classAbstractAdapter
- Parameters:
query
- The query to modify.offset
- the offset value.limit
- the limit value.
-
-