Class AutoAdapter

  • All Implemented Interfaces:
    DbAdapter

    public class AutoAdapter
    extends Object
    implements DbAdapter
    A DbAdapter that automatically detects the kind of database it is running on and instantiates an appropriate DB-specific adapter, delegating all subsequent method calls to this adapter.
    Since:
    1.2
    • Method Detail

      • getAdapter

        protected DbAdapter getAdapter()
        Returns a proxied DbAdapter, lazily creating it on first invocation.
      • loadAdapter

        protected DbAdapter loadAdapter()
        Loads underlying DbAdapter delegate.
      • getBatchTerminator

        public String getBatchTerminator()
        Description copied from interface: DbAdapter
        Returns a String used to terminate a batch in command-line tools. E.g. ";" on Oracle or "go" on Sybase.
        Specified by:
        getBatchTerminator in interface DbAdapter
      • supportsUniqueConstraints

        public boolean supportsUniqueConstraints()
        Description copied from interface: DbAdapter
        Returns true if a target database supports UNIQUE constraints.
        Specified by:
        supportsUniqueConstraints in interface DbAdapter
      • supportsCatalogsOnReverseEngineering

        public boolean supportsCatalogsOnReverseEngineering()
        Description copied from interface: DbAdapter
        Returns true if a target database supports catalogs on reverse engineering.
        Specified by:
        supportsCatalogsOnReverseEngineering in interface DbAdapter
      • supportsGeneratedKeys

        public boolean supportsGeneratedKeys()
        Description copied from interface: DbAdapter
        Returns true if a target database supports key autogeneration. This feature also requires JDBC3-compliant driver.
        Specified by:
        supportsGeneratedKeys in interface DbAdapter
      • supportsBatchUpdates

        public boolean supportsBatchUpdates()
        Description copied from interface: DbAdapter
        Returns true if the target database supports batch updates.
        Specified by:
        supportsBatchUpdates in interface DbAdapter
      • createTable

        public String createTable​(DbEntity entity)
        Description copied from interface: DbAdapter
        Returns a SQL string that can be used to create database table corresponding to entity parameter.
        Specified by:
        createTable in interface DbAdapter
      • createFkConstraint

        public String createFkConstraint​(DbRelationship rel)
        Description copied from interface: DbAdapter
        Returns a SQL string that can be used to create a foreign key constraint for the relationship, or null if foreign keys are not supported.
        Specified by:
        createFkConstraint in interface DbAdapter
      • externalTypesForJdbcType

        public String[] externalTypesForJdbcType​(int type)
        Description copied from interface: DbAdapter
        Returns an array of RDBMS types that can be used with JDBC type. Valid JDBC types are defined in java.sql.Types.
        Specified by:
        externalTypesForJdbcType in interface DbAdapter
      • getExtendedTypes

        public ExtendedTypeMap getExtendedTypes()
        Description copied from interface: DbAdapter
        Returns a map of ExtendedTypes that is used to translate values between Java and JDBC layer.
        Specified by:
        getExtendedTypes in interface DbAdapter
      • setPkGenerator

        public void setPkGenerator​(PkGenerator pkGenerator)
        Sets a PK generator override. If set to non-null value, such PK generator will be used instead of the one provided by wrapped adapter.
        Specified by:
        setPkGenerator in interface DbAdapter
        Parameters:
        pkGenerator - to set
      • buildAttribute

        public DbAttribute buildAttribute​(String name,
                                          String typeName,
                                          int type,
                                          int size,
                                          int precision,
                                          boolean allowNulls)
        Description copied from interface: DbAdapter
        Creates and returns a DbAttribute based on supplied parameters (usually obtained from database meta data).
        Specified by:
        buildAttribute in interface DbAdapter
        Parameters:
        name - database column name
        typeName - database specific type name, may be used as a hint to determine the right JDBC type.
        type - JDBC column type
        size - database column size (ignored if less than zero)
        precision - database column scale, i.e. the number of decimal digits (ignored if less than zero)
        allowNulls - database column nullable parameter
      • tableTypeForTable

        public String tableTypeForTable()
        Description copied from interface: DbAdapter
        Returns the name of the table type (as returned by DatabaseMetaData.getTableTypes) for a simple user table.
        Specified by:
        tableTypeForTable in interface DbAdapter
      • tableTypeForView

        public String tableTypeForView()
        Description copied from interface: DbAdapter
        Returns the name of the table type (as returned by DatabaseMetaData.getTableTypes) for a view table.
        Specified by:
        tableTypeForView in interface DbAdapter
      • unwrap

        public DbAdapter unwrap()
        Description copied from interface: DbAdapter
        Allows the users to get access to the adapter decorated by a given adapter.
        Specified by:
        unwrap in interface DbAdapter
        Since:
        4.0