Class Example<T>


  • public class Example<T>
    extends Object
    通用的 Example 查询对象
    Author:
    liuzh
    • Field Detail

      • orderByClause

        protected String orderByClause
        排序字段
      • distinct

        protected boolean distinct
        是否使用 distinct
      • selectColumns

        protected String selectColumns
        指定查询列
      • simpleSelectColumns

        protected String simpleSelectColumns
        指定查询列,不带 column As Alias 别名
      • startSql

        protected String startSql
        起始 SQL,添加到 SQL 前,注意防止 SQL 注入
      • endSql

        protected String endSql
        结尾 SQL,添加到 SQL 最后,注意防止 SQL 注入
    • Constructor Detail

      • Example

        public Example()
        默认构造方法,不允许Example查询条件为空,不能操作全库
    • Method Detail

      • or

        public void or​(Example.Criteria<T> criteria)
        or 条件
        Parameters:
        criteria - 条件
      • orPart

        public Example.OrCriteria<T> orPart()
        创建一个 or条件片段(不追加到当前Example)
        Returns:
        条件
      • createCriteria

        public Example.Criteria<T> createCriteria()
        创建一组条件,第一次调用时添加到默认条件中
        Returns:
        条件
      • clear

        public void clear()
        清除所有设置
      • excludeColumns

        public final Example<T> excludeColumns​(Fn<T,​Object>... fns)
        排除指定的查询列,设置时会清除 selectColumns
        Parameters:
        fns - 方法引用
      • getSelectColumns

        public String getSelectColumns()
        获取查询列
        Returns:
        查询列
      • setSelectColumns

        public Example<T> setSelectColumns​(String selectColumns)
        指定查询列
        Parameters:
        selectColumns - 查询列
      • getSimpleSelectColumns

        public String getSimpleSelectColumns()
        获取查询列,不带 column As Alias 别名
        Returns:
        查询列
      • setSimpleSelectColumns

        public Example<T> setSimpleSelectColumns​(String simpleSelectColumns)
        设置简单查询列,不能带别名
        Parameters:
        simpleSelectColumns - 简单查询列
      • getStartSql

        public String getStartSql()
        获取起始 SQL
        Returns:
        起始 SQL
      • setStartSql

        public Example<T> setStartSql​(String startSql)
        设置起始 SQL
        Parameters:
        startSql - 起始 SQL,添加到 SQL 前,注意防止 SQL 注入
      • getEndSql

        public String getEndSql()
        获取结尾 SQL
        Returns:
        结尾 SQL
      • setEndSql

        public Example<T> setEndSql​(String endSql)
        设置结尾 SQL
        Parameters:
        endSql - 结尾 SQL,添加到 SQL 最后,注意防止 SQL 注入
      • orderBy

        public Example<T> orderBy​(Fn<T,​Object> fn,
                                  Example.Order order)
        通过方法引用方式设置排序字段
        Parameters:
        fn - 排序列的方法引用
        order - 排序方式
        Returns:
        Example
      • orderBy

        public Example<T> orderBy​(String orderByCondition)
        用于一些非常规的排序 或 简单的字符串形式的排序
        本方法 和 example.setOrderByClause 方法的区别是 本方法不会覆盖已有的排序内容
        eg: ORDER BY status = 5 DESC 即将 status = 5 的放在最前面
        此时入参为:
        example.orderBy("status = 5 DESC")
        Parameters:
        orderByCondition - 字符串排序表达式
        Returns:
        Example
      • orderBy

        public Example<T> orderBy​(Supplier<String> orderByCondition)
        用于一些特殊的非常规的排序,排序字符串需要通过一些函数或者方法来构造出来
        eg: ORDER BY FIELD(id,3,1,2) 即将 id 按照 3,1,2 的顺序排序
        此时入参为:
        example.orderBy(()-> {
         return Stream.of(3,1,2)
                      .map(Objects::toString)
                      .collect(Collectors.joining("," , "FIELD( id ," , ")"));
         })
        Parameters:
        orderByCondition - 字符串排序表达式
        Returns:
        Example
      • orderByAsc

        @SafeVarargs
        public final Example<T> orderByAsc​(Fn<T,​Object>... fns)
        通过方法引用方式设置排序字段,升序排序
        Parameters:
        fns - 排序列的方法引用
        Returns:
        Example
      • orderByDesc

        @SafeVarargs
        public final Example<T> orderByDesc​(Fn<T,​Object>... fns)
        通过方法引用方式设置排序字段,降序排序
        Parameters:
        fns - 排序列的方法引用
        Returns:
        Example
      • getOrderByClause

        public String getOrderByClause()
        获取排序列
        Returns:
        排序列
      • setOrderByClause

        public Example<T> setOrderByClause​(String orderByClause)
        设置排序列
        Parameters:
        orderByClause - 排序列
      • getOredCriteria

        public List<Example.Criteria<T>> getOredCriteria()
        获取所有条件
        Returns:
        条件
      • isEmpty

        public boolean isEmpty()
        查询条件是否为空
        Returns:
      • isDistinct

        public boolean isDistinct()
        是否使用 distince
        Returns:
        distince
      • setDistinct

        public Example<T> setDistinct​(boolean distinct)
        设置 distince
        Parameters:
        distinct - true启用,false不使用
      • set

        public Example<T> set​(String setSql)
        设置更新字段和值
        Parameters:
        setSql - "column = value"
      • set

        public Example<T> set​(Fn<T,​Object> fn,
                              Object value)
        设置更新字段和值
        Parameters:
        fn - 字段
        value - 值