org.apache.torque.adapter
Class DBOracle

java.lang.Object
  extended by org.apache.torque.adapter.AbstractDBAdapter
      extended by org.apache.torque.adapter.DBOracle
All Implemented Interfaces:
java.io.Serializable, DB, IDMethod

public class DBOracle
extends AbstractDBAdapter

This code should be used for an Oracle database pool.

Version:
$Id: DBOracle.java 476550 2006-11-18 16:08:37Z tfischer $
Author:
Jon S. Stevens, Brett McLaughlin, Bill Schneider, Daniel Rall
See Also:
Serialized Form

Field Summary
 
Fields inherited from interface org.apache.torque.adapter.DB
ADAPTER_KEY, DRIVER_KEY, LIMIT_STYLE_DB2, LIMIT_STYLE_MYSQL, LIMIT_STYLE_NONE, LIMIT_STYLE_ORACLE, LIMIT_STYLE_POSTGRES, LIMIT_STYLE_SYBASE
 
Fields inherited from interface org.apache.torque.adapter.IDMethod
AUTO_INCREMENT, ID_BROKER, NATIVE, NO_ID_METHOD, SEQUENCE
 
Constructor Summary
protected DBOracle()
          Empty constructor.
 
Method Summary
 boolean escapeText()
          This method is for the SqlExpression.quoteAndEscape rules.
 void generateLimits(Query query, int offset, int limit)
          Build Oracle-style query with limit or offset.
 java.lang.String getDateString(java.util.Date date)
          This method is used to format any date string.
 java.lang.String getIDMethodSQL(java.lang.Object sequenceName)
          Returns the next key from a sequence.
 java.lang.String getIDMethodType()
          Returns the constant from the IDMethod interface denoting which type of primary key generation method this type of RDBMS uses.
 int getLimitStyle()
          Deprecated. This should not be exposed to the outside
 java.lang.String ignoreCase(java.lang.String in)
          This method is used to ignore case.
 void lockTable(java.sql.Connection con, java.lang.String table)
          Locks the specified table.
 boolean supportsNativeLimit()
          Return true for Oracle
 boolean supportsNativeOffset()
          Return true for Oracle
 java.lang.String toUpperCase(java.lang.String in)
          This method is used to ignore case.
 void unlockTable(java.sql.Connection con, java.lang.String table)
          Unlocks the specified table.
 boolean useEscapeClauseForLike()
          Whether an escape clause in like should be used.
 
Methods inherited from class org.apache.torque.adapter.AbstractDBAdapter
getBooleanString, getFunctionClass, getStringDelimiter, ignoreCaseInOrderBy, useIlike
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

DBOracle

protected DBOracle()
Empty constructor.

Method Detail

toUpperCase

public java.lang.String toUpperCase(java.lang.String in)
This method is used to ignore case.

Specified by:
toUpperCase in interface DB
Specified by:
toUpperCase in class AbstractDBAdapter
Parameters:
in - The string to transform to upper case.
Returns:
The upper case string.

ignoreCase

public java.lang.String ignoreCase(java.lang.String in)
This method is used to ignore case.

Specified by:
ignoreCase in interface DB
Specified by:
ignoreCase in class AbstractDBAdapter
Parameters:
in - The string whose case to ignore.
Returns:
The string in a case that can be ignored.

getDateString

public java.lang.String getDateString(java.util.Date date)
This method is used to format any date string.

Specified by:
getDateString in interface DB
Overrides:
getDateString in class AbstractDBAdapter
Parameters:
date - the Date to format
Returns:
The date formatted String for Oracle.

getIDMethodType

public java.lang.String getIDMethodType()
Description copied from class: AbstractDBAdapter
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 DB
Specified by:
getIDMethodType in class AbstractDBAdapter
Returns:
IDMethod constant
See Also:
DB.getIDMethodType()

getIDMethodSQL

public java.lang.String getIDMethodSQL(java.lang.Object sequenceName)
Returns the next key from a sequence. Uses the following implementation:
 select sequenceName.nextval from dual
 

Specified by:
getIDMethodSQL in interface DB
Specified by:
getIDMethodSQL in class AbstractDBAdapter
Parameters:
sequenceName - The name of the sequence (should be of type String).
Returns:
SQL to retreive the next database key.
See Also:
DB.getIDMethodSQL(Object)

lockTable

public void lockTable(java.sql.Connection con,
                      java.lang.String table)
               throws java.sql.SQLException
Locks the specified table.

Specified by:
lockTable in interface DB
Specified by:
lockTable in class AbstractDBAdapter
Parameters:
con - The JDBC connection to use.
table - The name of the table to lock.
Throws:
java.sql.SQLException - No Statement could be created or executed.

unlockTable

public void unlockTable(java.sql.Connection con,
                        java.lang.String table)
                 throws java.sql.SQLException
Unlocks the specified table.

Specified by:
unlockTable in interface DB
Specified by:
unlockTable in class AbstractDBAdapter
Parameters:
con - The JDBC connection to use.
table - The name of the table to unlock.
Throws:
java.sql.SQLException - No Statement could be created or executed.

getLimitStyle

public int getLimitStyle()
Deprecated. This should not be exposed to the outside

This method is used to check whether the database supports limiting the size of the resultset.

Specified by:
getLimitStyle in interface DB
Overrides:
getLimitStyle in class AbstractDBAdapter
Returns:
LIMIT_STYLE_ORACLE.

supportsNativeLimit

public boolean supportsNativeLimit()
Return true for Oracle

Specified by:
supportsNativeLimit in interface DB
Overrides:
supportsNativeLimit in class AbstractDBAdapter
Returns:
True if the database natively supports limiting the size of the resultset.
See Also:
AbstractDBAdapter.supportsNativeLimit()

supportsNativeOffset

public boolean supportsNativeOffset()
Return true for Oracle

Specified by:
supportsNativeOffset in interface DB
Overrides:
supportsNativeOffset in class AbstractDBAdapter
Returns:
True if the database natively supports returning results starting at an offset position other than 0.
See Also:
AbstractDBAdapter.supportsNativeOffset()

generateLimits

public void generateLimits(Query query,
                           int offset,
                           int limit)
Build Oracle-style query with limit or offset. If the original SQL is in variable: query then the requlting SQL looks like this:
 SELECT B.* FROM (
          SELECT A.*, rownum as TORQUE$ROWNUM FROM (
                  query
          ) A
     ) B WHERE B.TORQUE$ROWNUM > offset AND B.TORQUE$ROWNUM
     <= offset + limit
 

Specified by:
generateLimits in interface DB
Overrides:
generateLimits in class AbstractDBAdapter
Parameters:
query - The query to modify
offset - the offset Value
limit - the limit Value

escapeText

public boolean escapeText()
This method is for the SqlExpression.quoteAndEscape rules. The rule is, any string in a SqlExpression with a BACKSLASH will either be changed to "\\" or left as "\". SapDB does not need the escape character.

Specified by:
escapeText in interface DB
Overrides:
escapeText in class AbstractDBAdapter
Returns:
false.

useEscapeClauseForLike

public boolean useEscapeClauseForLike()
Whether an escape clause in like should be used. Example : select * from AUTHOR where AUTHOR.NAME like '\_%' ESCAPE '\'; Oracle needs this, so this implementation always returns true.

Specified by:
useEscapeClauseForLike in interface DB
Overrides:
useEscapeClauseForLike in class AbstractDBAdapter
Returns:
whether the escape clause should be appended or not.


Copyright © 2000-2012 Apache Software Foundation. All Rights Reserved.