All Implemented Interfaces:
Serializable, Cloneable, CorePlatform<ConversionManager>, Platform
Direct Known Subclasses:
Oracle23Platform

public class Oracle21Platform extends Oracle19Platform

Purpose: Supports certain new Oracle 21c data types, and usage of certain Oracle JDBC specific APIs.

Supports Oracle JSON data type.

Supports Oracle OracleJsonValue derived Java types.

See Also:
  • Constructor Details

    • Oracle21Platform

      public Oracle21Platform()
      Creates an instance of Oracle 21c database platform.
  • Method Details

    • buildClassTypes

      protected Map<String,Class<?>> buildClassTypes()
      Build the mapping of Oracle 21c database types to class types for the schema framework.
      Overrides:
      buildClassTypes in class Oracle9Platform
      Returns:
      database types to class types Map for the schema framework
    • buildFieldTypes

      protected Hashtable<Class<?>,FieldTypeDefinition> buildFieldTypes()
      Build the mapping of class types to Oracle 21c database types for the schema framework.
      Overrides:
      buildFieldTypes in class Oracle10Platform
      Returns:
      Hashtable mapping class types to database types for the schema framework
    • convertObject

      public <T> T convertObject(Object sourceObject, Class<T> javaClass, AbstractSession session) throws ConversionException, DatabaseException
      INTERNAL: Allow for conversion from the Oracle type to the Java type. Used in cases when DB connection is needed like BLOB, CLOB.
      Specified by:
      convertObject in interface CorePlatform<ConversionManager>
      Overrides:
      convertObject in class DatasourcePlatform
      Parameters:
      sourceObject - the object that must be converted
      javaClass - the class that the object must be converted to
      session - current database session
      Returns:
      the newly converted object
      Throws:
      ConversionException - all exceptions will be thrown as this type.
      DatabaseException
    • setParameterValueInDatabaseCall

      public void setParameterValueInDatabaseCall(Object parameter, PreparedStatement statement, int index, AbstractSession session) throws SQLException
      INTERNAL Set the parameter in the JDBC statement at the given index. This support a wide range of different parameter types, and is heavily optimized for common types. Handles Postgres specific PGobject instances.
      Overrides:
      setParameterValueInDatabaseCall in class Oracle9Platform
      Parameters:
      parameter - the parameter to set
      statement - target PreparedStatement instance
      index - index of the parameter in the statement
      session - current database session
      Throws:
      SQLException
    • setParameterValueInDatabaseCall

      public void setParameterValueInDatabaseCall(Object parameter, CallableStatement statement, String name, AbstractSession session) throws SQLException
      INTERNAL Set the parameter in the JDBC statement at the given index. This support a wide range of different parameter types, and is heavily optimized for common types. Handles Postgres specific PGobject instances.
      Overrides:
      setParameterValueInDatabaseCall in class Oracle9Platform
      Parameters:
      parameter - the parameter to set
      statement - target CallableStatement instance
      name - name of the parameter in the statement
      session - current database session
      Throws:
      SQLException
    • isOracle21

      public boolean isOracle21()
      INTERNAL: Check whether current platform is Oracle 21c or later.
      Specified by:
      isOracle21 in interface Platform
      Overrides:
      isOracle21 in class DatasourcePlatform
      Returns:
      Always returns true for instances of Oracle 21c platform.
      Since:
      4.0.8