Interface DbmsBean

    • Method Detail

      • getQuery

        @NotNull
        @NotNull String getQuery​(@NotNull
                                 @NotNull SqlQueryProvider sqlQueryProvider)
        Provide a different SQL query depending on SQL engine used.
        Parameters:
        sqlQueryProvider -
        Returns:
      • getConcat

        @NotNull
        @NotNull String getConcat​(String... values)
        Provide a different SQL concatenation operator depending on SQL engine used.
        Parameters:
        values - the values to concatenate.
        Returns:
        the concatenation SQL to append to a query.
      • getIndexNames

        Set<String> getIndexNames​(@NotNull
                                  @NotNull Connection c,
                                  @NotNull
                                  @NotNull String table,
                                  @Nullable
                                  @Nullable String column)
                           throws SQLException
        Returns indices set up on a given table, optionally narrowed down to a column. For H2, it will also return implicit indices set up to support FK relationships. For SQL Server, it will return implicit PK indices. Case of returned index names is database specific - all comparisons should be case-independent.
        Throws:
        SQLException
      • isColumnPresent

        boolean isColumnPresent​(@NotNull
                                @NotNull Connection connection,
                                @NotNull
                                @NotNull String tableName,
                                @NotNull
                                @NotNull String columnName)
                         throws SQLException
        Checks whether given table contains the specified column.
        Returns:
        true if given table contains the specified column or false when either column or table doesn't exist
        Throws:
        SQLException
      • isColumnPresent

        boolean isColumnPresent​(@NotNull
                                @NotNull Statement statement,
                                @NotNull
                                @NotNull String tableName,
                                @NotNull
                                @NotNull String columnName)
                         throws SQLException
        Checks whether given table contains the specified column.
        Returns:
        true if given table contains the specified column or false when either column or table doesn't exist
        Throws:
        SQLException
      • dropColumn

        boolean dropColumn​(@NotNull
                           @NotNull Connection connection,
                           @NotNull
                           @NotNull String tableName,
                           @NotNull
                           @NotNull String columnName)
                    throws SQLException
        Checks whether given table contains the specified column and drops it Checks whether given table contains the specified column and drops it, as well as foreign key constraints and index on the column. The method will automatically detect constraint names on DBMS that supports it or use provided names on DBMS that don't.
        Parameters:
        connection -
        tableName -
        columnName -
        Returns:
        Throws:
        SQLException
      • migrateColumnType

        void migrateColumnType​(Connection c,
                               String table,
                               String column,
                               int columnType,
                               @Nullable
                               @Nullable Integer columnSize)
                        throws SQLException
        Changes column type to the new type (see Types. Uses rename + add + copy + drop for maximum compatibility.
        Throws:
        SQLException
      • changeColumnType

        void changeColumnType​(Connection c,
                              String table,
                              String column,
                              int type,
                              @Nullable
                              @Nullable Integer columnSize,
                              boolean isNullable)
                       throws SQLException
        Changes column type to the new type (see Types. Uses alter table, so won't cope with all type conversions.
        Throws:
        SQLException
      • dropIndexIfExists

        boolean dropIndexIfExists​(Connection c,
                                  String table,
                                  @NotNull
                                  @NotNull String indexName)
                           throws SQLException
        Tries to find index by name ignoring case and removes it if found.
        Parameters:
        indexName -
        Returns:
        true if index was found
        Throws:
        SQLException
      • createUniqueConstraint

        void createUniqueConstraint​(Connection c,
                                    String uniqueKey,
                                    String table,
                                    String... columns)
                             throws SQLException
        Create unique key
        Throws:
        SQLException - if the operation fails (ie. key exists or data in the column is not unique)
      • isTablePresent

        boolean isTablePresent​(@NotNull
                               @NotNull Connection connection,
                               @NotNull
                               @NotNull String tableName)
                        throws SQLException
        Checks whether given table is present in the database
        Parameters:
        connection - connection used to verify DB table existence
        tableName - name of DB table
        Returns:
        true if database is accessible and table exists, false otherwise
        Throws:
        SQLException - if a database error occurs or connection is closed
      • isMySql

        boolean isMySql()
        Returns:
        true if db configured in Hibernate is MySQL
      • isOracle

        boolean isOracle()
        Returns:
        true if db configured in Hibernate is Oracle
      • getColumnDefinitionString

        String getColumnDefinitionString​(int columnType)
      • isHsqldb

        @Deprecated
        boolean isHsqldb()
        Deprecated.
        since 6.3 HSQL is no longer supported, method will always return false
        Returns:
        true if db configured in Hibernate is HSQLDB
      • isH2

        boolean isH2()
        Returns:
        true if db configured in Hibernate is H2
      • isPostgreSql

        boolean isPostgreSql()
        Returns:
        true if db configured in Hibernate is PostgreSQL
      • isMsSqlServer

        boolean isMsSqlServer()
        Returns:
        true if db configured in Hibernate is Microsoft SQL Server
      • changeTableNameToUpperCase

        void changeTableNameToUpperCase​(Connection connection,
                                        String oldName)
                                 throws SQLException
        Rename table from lower case to upper case. No-op if database is table names are case insensitive.
        Throws:
        SQLException
      • quote

        String quote​(String name)
        Quotes the supplied name according to the quoting rules of the underlying DBMS.
      • clobEquals

        @NotNull
        @NotNull String clobEquals​(@NotNull
                                   @NotNull String columnName)
        Comparison string for CLOB column.
        Parameters:
        columnName - column name
        Returns:
        string for prepared statement
      • getLargeTextTypeName

        @NotNull
        @NotNull String getLargeTextTypeName()