Class DBMSHandlerH2

java.lang.Object
org.apache.empire.dbms.DBMSHandlerBase
org.apache.empire.dbms.h2.DBMSHandlerH2
All Implemented Interfaces:
DBMSHandler

public class DBMSHandlerH2 extends DBMSHandlerBase
This class provides support for the H2 database system.
  • Constructor Details

    • DBMSHandlerH2

      public DBMSHandlerH2()
      Constructor for the H2 database dbms.
  • Method Details

    • getDatabaseName

      public String getDatabaseName()
      returns the name for the database / schema
      Returns:
      the database / schema name
    • setDatabaseName

      public void setDatabaseName(String databaseName)
      Sets the name for the database / schema
      This names is required for creating a database.
      When a name is set, the dbms will automatically execute 'USE dbname' when the database is opened.
      Parameters:
      databaseName - the name of the database
    • isUseSequenceTable

      public boolean isUseSequenceTable()
      returns whether a sequence table is used for record identiy management.
      Default is false. In this case the AutoIncrement feature of H2 is used.
      Returns:
      true if a sequence table is used instead of identity columns.
    • setUseSequenceTable

      public void setUseSequenceTable(boolean useSequenceTable)
      If set to true a special table is used for sequence number generation.
      Otherwise the AutoIncrement feature of H2 is used identiy fields.
      Parameters:
      useSequenceTable - true to use a sequence table or false otherwise.
    • getSequenceTableName

      public String getSequenceTableName()
      returns the name of the sequence table
      Returns:
      the name of the table used for sequence number generation
    • setSequenceTableName

      public void setSequenceTableName(String sequenceTableName)
      Sets the name of the sequence table. Only applicable if useSequenceTable is set to true.
      Parameters:
      sequenceTableName - the name of the table used for sequence number generation
    • createCommand

      public DBCommand createCommand(boolean autoPrepareStmt)
      Creates a new H2 command object.
      Specified by:
      createCommand in interface DBMSHandler
      Overrides:
      createCommand in class DBMSHandlerBase
      Parameters:
      autoPrepareStmt - flag whether to automatically provide literal values as prepared statement params
      Returns:
      the new DBCommandDerby object
    • isSupported

      public boolean isSupported(DBMSFeature type)
      Returns whether or not a particular feature is supported by this dmbs
      Specified by:
      isSupported in interface DBMSHandler
      Specified by:
      isSupported in class DBMSHandlerBase
      Parameters:
      type - type of requrested feature. @see DBMSFeature
      Returns:
      true if the features is supported or false otherwise
    • getSQLPhrase

      public String getSQLPhrase(DBSqlPhrase phrase)
      Gets an sql phrase template for this database system.
      Parameters:
      phrase - the identifier of the phrase
      Returns:
      the phrase template
      See Also:
    • getConvertPhrase

      public String getConvertPhrase(DataType destType, DataType srcType, Object format)
      Description copied from interface: DBMSHandler
      Returns a data type convertion phrase template for this dbms
      The returned template must contain a '?' which will be replaced by a column expression.
      Parameters:
      destType - the target data type
      srcType - the source data type
      format - additional formatting information (optional)
      Returns:
      the data conversion phrase template
      See Also:
    • getNextSequenceValue

      public Object getNextSequenceValue(DBDatabase db, String seqName, int minValue, Connection conn)
      Description copied from class: DBMSHandlerBase
      Returns the next value of a named sequence The numbers are used for fields of type DBExpr.DT_AUTOINC.
      If a dbms supports this function it must return true for isSupported(DBMSFeature.SEQUENCES).
      Specified by:
      getNextSequenceValue in class DBMSHandlerBase
      Parameters:
      db - the database
      seqName - the name of the sequence
      minValue - the minimum value of the sequence
      conn - a valid database connection
      Returns:
      a new unique sequence value or null if an error occurred
      See Also:
    • getNextSequenceValueExpr

      public DBColumnExpr getNextSequenceValueExpr(DBTableColumn column)
      Description copied from class: DBMSHandlerBase
      Returns an expression for creating a sequence value. This is intended for the use with INSERT INTO statements where many records are affected.
      Specified by:
      getNextSequenceValueExpr in class DBMSHandlerBase
      Parameters:
      column - the column for which to obtain an expression providing the next sequence value
      Returns:
      an expression for the next sequence value
      See Also:
    • getUpdateTimestamp

      public Timestamp getUpdateTimestamp(Connection conn)
      Overridden. Returns a timestamp that is used for record updates created by the database server.
      Specified by:
      getUpdateTimestamp in interface DBMSHandler
      Overrides:
      getUpdateTimestamp in class DBMSHandlerBase
      Parameters:
      conn - the connection that might be used
      Returns:
      the current date and time of the database server.
    • getDDLScript

      public void getDDLScript(DBDDLGenerator.DDLActionType type, DBObject dbo, DBSQLScript script)
      Description copied from interface: DBMSHandler
      Appends the required DLL commands to create, drop or alter an object to the supplied DBDQLScript.
      Parameters:
      type - operation to perform (CREATE, DROP, ALTER)
      dbo - the object for which to perform the operation (DBDatabase, DBTable, DBView, DBColumn, DBRelation)
      script - the script to which to add the DDL command(s)
      See Also: