Class ClausesBuilder


  • public class ClausesBuilder
    extends java.lang.Object
    SQL clauses builder.
    This class should be instanciated through SQL.
    Since:
    0.1
    • Constructor Detail

      • ClausesBuilder

        public ClausesBuilder()
        ClausesBuilder default constructor
      • ClausesBuilder

        public ClausesBuilder​(java.lang.String column,
                              ClauseMaker clause,
                              T value)
        ClausesBuilder constructor.
        This constructor will try to add a first clause if value is valid. Value will be validated with SQL::isValidValue function.
        Type Parameters:
        T - the value type
        Parameters:
        column - the column
        clause - the clause maker
        value - the value
      • ClausesBuilder

        public ClausesBuilder​(java.lang.String column,
                              ClauseMaker clause,
                              T value,
                              ValueChecker<T> checker)
        ClausesBuilder constructor
        This constructor will try to add a first clause if value is valid.
        Type Parameters:
        T - the value type
        Parameters:
        column - the column
        clause - the clause maker
        value - the value
        checker - the value checker to use
      • ClausesBuilder

        public ClausesBuilder​(java.lang.String column,
                              ClauseMaker clause,
                              T value1,
                              T value2)
        ClausesBuilder constructor.
        This constructor will try to add a first clause if value is valid. Value will be validated with SQL::isValidValue function.
        Type Parameters:
        T - the value type
        Parameters:
        column - the column
        clause - the clause maker
        value1 - the first value
        value2 - the second value
      • ClausesBuilder

        public ClausesBuilder​(java.lang.String column,
                              ClauseMaker clause,
                              T value1,
                              T value2,
                              ValueChecker<T> checker)
        ClausesBuilder constructor
        This constructor will try to add a first clause if value is valid.
        Type Parameters:
        T - the value type
        Parameters:
        column - the column
        clause - the clause maker
        value1 - the first value
        value2 - the second value
        checker - the value checker to use
    • Method Detail

      • field

        public ClausesBuilder field​(java.lang.String column)
        Add field to clause
        Parameters:
        column - the column
        Returns:
        this
      • isNull

        public ClausesBuilder isNull()
        Add IS NULL clause
        Returns:
        this
      • isNotNull

        public ClausesBuilder isNotNull()
        Add IS NOT NULL clause
        Returns:
        this
      • notEquals

        public ClausesBuilder notEquals()
        Add not equals clause with <> operator
        Returns:
        this
      • equals

        public ClausesBuilder equals()
        Add equals clause with = operator
        Returns:
        this
      • notExists

        public ClausesBuilder notExists​(SelectBuilder query)
        Add NOT EXISTS in subquery clause
        Parameters:
        query - the select query
        Returns:
        this
      • exists

        public ClausesBuilder exists​(SelectBuilder query)
        Add EXISTS in subquery clause
        Parameters:
        query - the select query
        Returns:
        this
      • in

        public <T> ClausesBuilder in​(java.util.Collection<T> values)
        Add IN clause.
        Due to many database engine limitation about the maximum number of prepared statement per connection, IN operator will never be treated with place holder prepared statement values.
        You can format text values with SQL utility methods.
        Type Parameters:
        T - the values' type
        Parameters:
        values - the values
        Returns:
        this
      • notIn

        public <T> ClausesBuilder notIn​(java.util.Collection<T> values)
        Add NOT IN clause.
        Due to many database engine limitation about the maximum number of prepared statement per connection, NOT IN operator will never be treated with place holder prepared statement values.
        You can format text values with SQL utility methods.
        Type Parameters:
        T - the values' type
        Parameters:
        values - the values
        Returns:
        this
      • in

        public ClausesBuilder in​(SQLQuery query)
        Add IN subquery clause.
        Parameters:
        query - the subquery
        Returns:
        this
      • notIn

        public ClausesBuilder notIn​(SQLQuery query)
        Add NOT IN subquery clause.
        Parameters:
        query - the subquery
        Returns:
        this
      • notIn

        public ClausesBuilder notIn​(SelectBuilder query)
        Add NOT IN subquery clause.
        Parameters:
        query - the subquery
        Returns:
        this
      • greater

        public ClausesBuilder greater()
        Add greater clause with > operator
        Returns:
        this
      • greateEquals

        public ClausesBuilder greateEquals()
        Add greater or equals clause with >= operator
        Returns:
        this
      • lesser

        public ClausesBuilder lesser()
        Add lesser clause with < operator
        Returns:
        this
      • lesserEquals

        public ClausesBuilder lesserEquals()
        Add lesser or equals clause with <= operator
        Returns:
        this
      • notLike

        public ClausesBuilder notLike()
        Add NOT LIKE clause
        Returns:
        this
      • between

        public ClausesBuilder between()
        Add BETWEEN clause
        Returns:
        this
      • notBetween

        public ClausesBuilder notBetween()
        Add NOT BETWEEN clause
        Returns:
        this
      • and

        public ClausesBuilder and()
        Add AND to SQL query
        Returns:
        this
      • and

        public <T> ClausesBuilder and​(java.lang.String column,
                                      ClauseMaker clause,
                                      T value)
        Add AND clause if value is valid. Value will be validate with SQL::isValidValue function.
        Type Parameters:
        T - the value type
        Parameters:
        column - the column
        clause - the clause maker
        value - the value
        Returns:
        this
      • and

        public <T> ClausesBuilder and​(java.lang.String column,
                                      ClauseMaker clause,
                                      T value,
                                      ValueChecker<T> checker)
        Add AND clause if value is valid
        Type Parameters:
        T - the value type
        Parameters:
        column - the column
        clause - the clause maker
        value - the value
        checker - the value checker to use
        Returns:
        this
      • and

        public <T> ClausesBuilder and​(java.lang.String column,
                                      ClauseMaker clause,
                                      T value1,
                                      T value2)
        Add AND clause if value is valid. Value will be validate with SQL::isValidValue function.
        Type Parameters:
        T - the value type
        Parameters:
        column - the column
        clause - the clause maker
        value1 - the first value
        value2 - the second value
        Returns:
        this
      • and

        public <T> ClausesBuilder and​(java.lang.String column,
                                      ClauseMaker clause,
                                      T value1,
                                      T value2,
                                      ValueChecker<T> checker)
        Add AND clause if value is valid
        Type Parameters:
        T - the value type
        Parameters:
        column - the column
        clause - the clause maker
        value1 - the first value
        value2 - the second value
        checker - the value checker to use
        Returns:
        this
      • or

        public <T> ClausesBuilder or​(java.lang.String column,
                                     ClauseMaker clause,
                                     T value)
        Add OR clause if value is valid. Value will be validate with SQL::isValidValue function.
        Type Parameters:
        T - the value type
        Parameters:
        column - the column
        clause - the clause maker
        value - the value
        Returns:
        this
      • or

        public <T> ClausesBuilder or​(java.lang.String column,
                                     ClauseMaker clause,
                                     T value,
                                     ValueChecker<T> checker)
        Add OR clause if value is valid
        Type Parameters:
        T - the value type
        Parameters:
        column - the column
        clause - the clause maker
        value - the value
        checker - the value checker to use
        Returns:
        this
      • or

        public <T> ClausesBuilder or​(java.lang.String column,
                                     ClauseMaker clause,
                                     T value1,
                                     T value2)
        Add OR clause if value is valid. Value will be validate with SQL::isValidValue function.
        Type Parameters:
        T - the value type
        Parameters:
        column - the column
        clause - the clause maker
        value1 - the first value
        value2 - the second value
        Returns:
        this
      • or

        public <T> ClausesBuilder or​(java.lang.String column,
                                     ClauseMaker clause,
                                     T value1,
                                     T value2,
                                     ValueChecker<T> checker)
        Add OR clause if value is valid
        Type Parameters:
        T - the value type
        Parameters:
        column - the column
        clause - the clause maker
        value1 - the first value
        value2 - the second value
        checker - the value checker to use
        Returns:
        this
      • and

        public ClausesBuilder and​(ClausesBuilder other)
        Add clauses into parenthesis with AND
        Parameters:
        other - the clauses to add
        Returns:
        this
      • or

        public ClausesBuilder or​(ClausesBuilder other)
        Add clauses into parenthesis with OR
        Parameters:
        other - the clauses to add
        Returns:
        this