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:
  • Constructor Details

    • DerbyAdapter

      protected DerbyAdapter()
      Empty constructor.
  • Method Details

    • toUpperCase

      public String toUpperCase(String str)
      This method is used to ignore case.
      Specified by:
      toUpperCase in interface Adapter
      Specified by:
      toUpperCase in class AbstractAdapter
      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 interface Adapter
      Specified by:
      ignoreCase in class AbstractAdapter
      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 the IDMethod interface denoting which type of primary key generation method this type of RDBMS uses.
      Specified by:
      getIDMethodType in interface Adapter
      Specified by:
      getIDMethodType in class AbstractAdapter
      Returns:
      IDMethod constant
      See Also:
    • getIDMethodSQL

      public String getIDMethodSQL(Object obj)
      Returns the SQL to get the database key of the last row inserted, which in this case is VALUES IDENTITY_VAL_LOCAL().
      Specified by:
      getIDMethodSQL in interface Adapter
      Specified by:
      getIDMethodSQL in class AbstractAdapter
      Parameters:
      obj - Information used for key generation.
      Returns:
      The most recently inserted database key.
      See Also:
    • lockTable

      public void lockTable(Connection con, String table) throws SQLException
      Locks the specified table.
      Specified by:
      lockTable in interface Adapter
      Specified by:
      lockTable in class AbstractAdapter
      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 interface Adapter
      Specified by:
      unlockTable in class AbstractAdapter
      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 interface Adapter
      Overrides:
      escapeText in class AbstractAdapter
      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 returns true.
      Specified by:
      useEscapeClauseForLike in interface Adapter
      Overrides:
      useEscapeClauseForLike in class AbstractAdapter
      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 interface Adapter
      Overrides:
      useGetGeneratedKeys in class AbstractAdapter
      Returns:
      a boolean value
      See Also:
    • 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 interface Adapter
      Overrides:
      generateLimits in class AbstractAdapter
      Parameters:
      query - The query to modify.
      offset - the offset value.
      limit - the limit value.