net.java.ao.db
Class OracleDatabaseProvider

java.lang.Object
  extended by net.java.ao.DatabaseProvider
      extended by net.java.ao.db.OracleDatabaseProvider

public class OracleDatabaseProvider
extends DatabaseProvider

Author:
Daniel Spiewak

Constructor Summary
OracleDatabaseProvider(java.lang.String uri, java.lang.String username, java.lang.String password)
           
 
Method Summary
protected  java.lang.String convertTypeToString(DatabaseType<?> type)
           
protected  java.lang.String getDateFormat()
           
 java.lang.Class<? extends java.sql.Driver> getDriverClass()
          Returns the JDBC Driver class which corresponds to the database being abstracted.
 java.sql.ResultSet getTables(java.sql.Connection conn)
           
protected  java.lang.String renderAutoIncrement()
          Generates the DDL fragment required to specify an INTEGER field as auto-incremented.
protected  java.lang.String renderFunction(DatabaseFunction func)
           
protected  java.lang.String renderOnUpdate(DDLField field)
           
protected  java.lang.String renderQueryLimit(Query query)
           
protected  java.lang.String renderTriggerForField(DDLTable table, DDLField field)
           
 void setQueryResultSetProperties(java.sql.ResultSet res, Query query)
           
 
Methods inherited from class net.java.ao.DatabaseProvider
considerPrecision, dispose, executeInsertReturningKeys, getConnection, getConnectionImpl, getFunctionNameForField, getInstance, getInstance, getPassword, getTriggerNameForField, getURI, getUsername, insertReturningKeys, isNumericType, parseValue, renderAction, renderAlterTableAddColumn, renderAlterTableAddKey, renderAlterTableChangeColumn, renderAlterTableDropColumn, renderAlterTableDropKey, renderAppend, renderCalendar, renderConstraintsForTable, renderDropFunctions, renderDropTable, renderDropTriggers, renderField, renderFieldType, renderForeignKey, renderFunctionForField, renderFunctions, renderQuery, renderQueryGroupBy, renderQueryJoins, renderQueryOrderBy, renderQuerySelect, renderQueryWhere, renderTable, renderTriggers, renderUnique, renderValue, setPostConnectionProperties, setQueryStatementProperties
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

OracleDatabaseProvider

public OracleDatabaseProvider(java.lang.String uri,
                              java.lang.String username,
                              java.lang.String password)
Method Detail

getDriverClass

public java.lang.Class<? extends java.sql.Driver> getDriverClass()
                                                          throws java.lang.ClassNotFoundException
Description copied from class: DatabaseProvider

Returns the JDBC Driver class which corresponds to the database being abstracted. This should be implemented in such a way as to initialize and register the driver with JDBC. For most drivers, this requires code in the following form:

public Class<? extends Driver> getDriverClass() {
     return (Class<? extends Driver>) Class.forName("com.mysql.jdbc.Driver");
 }

The following does not fire the driver's static initializer and thus will (usually) not work:

public Class<? extends Driver> getDriverClass() {
     return com.mysql.jdbc.Driver.class;
 }

If the driver is not on the classpath, a ClassNotFoundException can and should be thrown (certain auto-magic configuration sections of ActiveObjects depend upon this under certain circumstances).

Specified by:
getDriverClass in class DatabaseProvider
Throws:
java.lang.ClassNotFoundException

setQueryResultSetProperties

public void setQueryResultSetProperties(java.sql.ResultSet res,
                                        Query query)
                                 throws java.sql.SQLException
Overrides:
setQueryResultSetProperties in class DatabaseProvider
Throws:
java.sql.SQLException

getTables

public java.sql.ResultSet getTables(java.sql.Connection conn)
                             throws java.sql.SQLException
Overrides:
getTables in class DatabaseProvider
Throws:
java.sql.SQLException

convertTypeToString

protected java.lang.String convertTypeToString(DatabaseType<?> type)
Overrides:
convertTypeToString in class DatabaseProvider

renderQueryLimit

protected java.lang.String renderQueryLimit(Query query)
Overrides:
renderQueryLimit in class DatabaseProvider

renderAutoIncrement

protected java.lang.String renderAutoIncrement()
Description copied from class: DatabaseProvider

Generates the DDL fragment required to specify an INTEGER field as auto-incremented. For databases which do not support such flags (which is just about every database exception MySQL), "" is an acceptable return value. This method should never return null as it would cause the field rendering method to throw a NullPointerException.

This method is abstract (as opposed to the other methods which are either defined against MySQL or simply empty) because of the vast differences in rendering auto-incremented fields across different databases. Also, it seemed like a terribly good idea at the time and I haven't found a compelling reason to change it.

Specified by:
renderAutoIncrement in class DatabaseProvider

renderOnUpdate

protected java.lang.String renderOnUpdate(DDLField field)
Overrides:
renderOnUpdate in class DatabaseProvider

renderFunction

protected java.lang.String renderFunction(DatabaseFunction func)
Overrides:
renderFunction in class DatabaseProvider

getDateFormat

protected java.lang.String getDateFormat()
Overrides:
getDateFormat in class DatabaseProvider

renderTriggerForField

protected java.lang.String renderTriggerForField(DDLTable table,
                                                 DDLField field)
Overrides:
renderTriggerForField in class DatabaseProvider