Class Db2

    • Constructor Detail

      • Db2

        public Db2()
    • Method Detail

      • isMatchingUrl

        public boolean isMatchingUrl​(java.lang.String url)
        Description copied from interface: Backend
        Checks whether the backend belongs to the given jdbc url.
        If multiple backend implementations are provided for the same database type, only one backend should match the URL. The others must be selected via name.
        Parameters:
        url - the jdbc url
        Returns:
        true if matches
      • getName

        public java.lang.String getName()
        Description copied from interface: Backend
        Gets the name of the backend.
        Returns:
        the name
      • getDriverClassName

        public java.lang.String getDriverClassName()
        Description copied from interface: Backend
        Gets the JDBC driver class name.
        Returns:
        the class name
      • getMaxSize

        public int getMaxSize​(SqlType sqlType)
        Description copied from interface: Backend
        Returns the maximum size for a given SQL-type.
        Specified by:
        getMaxSize in interface Backend
        Overrides:
        getMaxSize in class AbstractBackend
        Parameters:
        sqlType - the SQL-type
        Returns:
        the maximum size, 0 if unlimited, -1 if type without size
      • getBackendId

        public java.lang.String getBackendId​(java.sql.Connection connection)
        Description copied from interface: Backend
        Determines the unique id or name used by the backend for a given connection.

        Useful to figure out the corresponding ManagedConnection from the backend's logfiles.

        Parameters:
        connection - the jdbc connection
        Returns:
        the backend id, null if none
      • sqlCreateTableIntro

        public java.lang.String sqlCreateTableIntro​(java.lang.String tableName,
                                                    java.lang.String comment)
        Description copied from interface: Backend
        Generates the first line of a CREATE TABLE statement.
        Specified by:
        sqlCreateTableIntro in interface Backend
        Overrides:
        sqlCreateTableIntro in class AbstractBackend
        Parameters:
        tableName - the tablename with optional schema separated by a dot
        comment - optional comment, null if none
        Returns:
        the SQL code including the opening bracket
      • sqlTypeToString

        public java.lang.String sqlTypeToString​(SqlType sqlType,
                                                int size)
        Description copied from interface: Backend
        Converts the java SQL-type to the database type name.
        Specified by:
        sqlTypeToString in interface Backend
        Overrides:
        sqlTypeToString in class AbstractBackend
        Parameters:
        sqlType - the java sql type
        size - the column's size
        Returns:
        the corresponding type string
      • jdbcTypeToSqlType

        public SqlType[] jdbcTypeToSqlType​(int jdbcType,
                                           int size,
                                           int scale)
        Description copied from interface: Backend
        Converts the JDBC data type integer to a tentackle backend SqlTypes.

        There may be more than one sqltype returned!

        Specified by:
        jdbcTypeToSqlType in interface Backend
        Overrides:
        jdbcTypeToSqlType in class AbstractBackend
        Parameters:
        jdbcType - the jdbc data type
        size - the column size
        scale - the column's scale
        Returns:
        the SqlTypes, empty array if no mapping available or no exact match (not generated by TT)
        See Also:
        Types
      • sqlCreateColumn

        public java.lang.String sqlCreateColumn​(java.lang.String columnName,
                                                java.lang.String comment,
                                                SqlType sqlType,
                                                int size,
                                                int scale,
                                                boolean nullable,
                                                java.lang.Object defaultValue,
                                                boolean primaryKey,
                                                boolean withTrailingComma)
        Description copied from interface: Backend
        Generates the attribute definition of a CREATE TABLE statement.
        Specified by:
        sqlCreateColumn in interface Backend
        Overrides:
        sqlCreateColumn in class AbstractBackend
        Parameters:
        columnName - the database column name
        comment - optional comment, null if none
        sqlType - the JDBC sql type
        size - the optional size
        scale - the optional scale
        nullable - true if NULL, else NOT NULL
        defaultValue - the optional default value
        primaryKey - true if this is a primary key
        withTrailingComma - true if append a comma
        Returns:
        the SQL code
      • sqlAddColumn

        public java.lang.String sqlAddColumn​(java.lang.String tableName,
                                             java.lang.String columnName,
                                             java.lang.String comment,
                                             SqlType sqlType,
                                             int size,
                                             int scale,
                                             boolean nullable,
                                             java.lang.Object defaultValue)
        Description copied from interface: Backend
        Generates sql code to add a column.
        Specified by:
        sqlAddColumn in interface Backend
        Overrides:
        sqlAddColumn in class AbstractBackend
        Parameters:
        tableName - the tablename
        columnName - the new column name
        comment - optional comment, null if none
        sqlType - the JDBC sql type
        size - the optional size
        scale - the optional scale
        nullable - true if NULL, else NOT NULL
        defaultValue - the optional default value
        Returns:
        the SQL code
      • sqlAlterColumnType

        public java.lang.String sqlAlterColumnType​(java.lang.String tableName,
                                                   java.lang.String columnName,
                                                   java.lang.String comment,
                                                   SqlType sqlType,
                                                   int size,
                                                   int scale,
                                                   boolean nullable,
                                                   java.lang.Object defaultValue)
        Description copied from interface: Backend
        Generates sql code to change the datatype of a column.
        Specified by:
        sqlAlterColumnType in interface Backend
        Overrides:
        sqlAlterColumnType in class AbstractBackend
        Parameters:
        tableName - the tablename
        columnName - the new column name
        comment - optional comment, null if none
        sqlType - the JDBC sql type
        size - the optional size
        scale - the optional scale
        nullable - true if NULL, else NOT NULL
        defaultValue - the optional default value
        Returns:
        the SQL code
      • sqlRenameIndex

        public java.lang.String sqlRenameIndex​(java.lang.String tableName,
                                               java.lang.String oldIndexName,
                                               java.lang.String newIndexName)
        Description copied from interface: Backend
        Generates sql code to rename an index.
        Specified by:
        sqlRenameIndex in interface Backend
        Overrides:
        sqlRenameIndex in class AbstractBackend
        Parameters:
        tableName - the tablename
        oldIndexName - the old column name
        newIndexName - the new column name
        Returns:
        the SQL code, null if not supported by the backend and we need to drop and create
      • isDropIfExistsSupported

        protected boolean isDropIfExistsSupported()
        Description copied from class: AbstractBackend
        Adds "IF EXISTS" to drop clauses, if supported by the backend.
        Makes migration a little more robust in case the same SQL scripts are applied to different databases than those used to generate the migration scripts for.
        Overrides:
        isDropIfExistsSupported in class AbstractBackend
        Returns:
        true if supported