Package 

Class Select

  • All Implemented Interfaces:
    query.BasedQuery , query.select.SelectQuery

    
    public final class Select
    extends SelectQueryImpl
                        

    select语句dsl类

    • Method Detail

      • from

         final Select from(String table, String alias)

        from子句 例如:Select().from("table1", "t1")

        Parameters:
        table - String 表名
        alias - String?
      • from

         final Select from(String table)

        from子句 例如:Select() from "t1"

        Parameters:
        table - String 表名
      • from

         final Select from(SelectQuery select, String alias)

        from子句(子查询) 例如:Select().from(Select() from "table1", "t1")

        Parameters:
        select - SelectQuery 子查询dsl
        alias - String?
      • from

         final Select from(SelectQuery select)

        from子句(子查询) 例如:Select() from (Select() from "table1", "t1")

        Parameters:
        select - SelectQuery 子查询dsl
      • from

         final <T extends TableSchema> Select from(T table, String alias)

        from子句 例如:Select().from(Table, "t1")

        Parameters:
        table - T 实体类伴生对象名
        alias - String?
      • from

         final <T extends TableSchema> Select from(T table)

        from子句 例如:Select() from Table

        Parameters:
        table - T 实体类伴生对象名
      • fromLateral

         final Select fromLateral(SelectQuery select)

        from lateral子句 例如:Select() fromLateral (Select() from "table1", "t1")

        Parameters:
        select - SelectQuery 子查询dsl
      • alias

         final Select alias(String name)

        给表起别名(如果有join,那么会给最近的一张表起别名) 例如:Select() from Table alias "t1"

        Parameters:
        name - String 表别名
      • alias

         final Select alias(String tableName, String columnName)

        给表和列起别名(如果有join,那么会给最近的一张表起别名),会生成FROM table_name table_alias(column1_alias, column2_alias) 形式的sql 例如:Select().from(Table).alias("t1", "c1", "c2")

        Parameters:
        tableName - String 表别名
        columnName - Array<out String> 列别名
      • select

         final Select select(Query query)

        select子句 例如:Select().select(column("c1"), column("c2"))

        Parameters:
        query - Array<out Query> 查询的表达式列表
      • select

         final Select select(List<Query> query)

        select子句(中缀调用) 例如:Select() select listOf(column("c1"), column("c2"))

        Parameters:
        query - List<Query> 查询的表达式列表
      • select

         final Select select(Query query)

        select子句(中缀调用) 例如:Select() select count()

        Parameters:
        query - Query 查询的表达式
      • select

         final Select select()

        select (后续如果还有调用其他select函数,会替换掉查询列表里的) 例如:Select().select()

      • select

         final Select select(String columns)

        select子句(字段名中如果有.会被识别为表名+字段名的格式,*会被识别为通配符) 例如:Select().select("c1", "t1.c2")

        Parameters:
        columns - Array<out String> 字段名
      • selectDistinct

         final Select selectDistinct(Query query)

        select distinct子句(中缀调用)

        Parameters:
        query - Query 查询的表达式
      • where

         final Select where(Query query)

        where子句(如果有多个where调用,会使用AND拼接条件) 例如:Select() from Table where (Table.c1 eq 1)

        Parameters:
        query - Query where条件中的表达式
      • where

         final Select where(Function0<Boolean> test, Query query)

        where子句(第一个参数的lambda返回值为true时,表达式会被拼接到where子句中)

        Parameters:
        test - Function0<Boolean> 检测表达式
        query - Query where条件中的表达式
      • where

         final Select where(Boolean test, Query query)

        where子句(第一个参数的值为true时,表达式会被拼接到where子句中)

        Parameters:
        test - Boolean 检测表达式
        query - Query where条件中的表达式
      • having

         final Select having(Query query)

        having子句(使用方式请参考where)

        Parameters:
        query - Query having条件中的表达式
      • orderBy

         final Select orderBy(OrderBy orderBy)

        order by子句(使用表达式类型的.asc()或.desc()生成排序规则传入) 例如:Select().from(Table).orderBy(Table.c1.asc(), Table.c2.desc())

        Parameters:
        orderBy - Array<out OrderBy> 排序规则列表
      • orderBy

         final Select orderBy(List<OrderBy> orderByList)

        中缀调用order by子句(使用表达式类型的.asc()或.desc()生成排序规则传入) 例如:Select() from Table orderBy listOf(Table.c1.asc(), Table.c2.desc())

        Parameters:
        orderByList - List<OrderBy> 排序规则列表
      • orderBy

         final Select orderBy(OrderBy orderBy)

        中缀调用order by子句(使用表达式类型的.asc()或.desc()生成排序规则传入) 例如:Select() from Table orderBy Table.c1.asc()

        Parameters:
        orderBy - List<OrderBy> 排序规则
      • orderByAsc

         final Select orderByAsc(String columns)

        order by子句(正序),与其他order by类函数可以组合调用 例如:Select().from(Table).orderByAsc("c1", "c2")

        Parameters:
        columns - Array<out String> 字段名列表
      • orderByAsc

         final Select orderByAsc(Query columns)

        order by子句(正序),与其他order by类函数可以组合调用 例如:Select().from(Table).orderByAsc(column("c1"), column("c2"))

        Parameters:
        columns - Array<out Query> 待排序的表达式列表
      • orderByAsc

         final Select orderByAsc(List<Query> columns)

        中缀调用order by子句(正序),与其他order by类函数可以组合调用 例如:Select() from Table orderByAsc listOf(column("c1"), column("c2"))

        Parameters:
        columns - List<Query> 待排序的表达式列表
      • orderByAsc

         final Select orderByAsc(Query column)

        中缀调用order by子句(正序),与其他order by类函数可以组合调用 例如:Select() from Table orderByAsc column("c1")

        Parameters:
        column - Query 待排序的表达式
      • orderByDesc

         final Select orderByDesc(String columns)

        order by子句(倒序),与其他order by类函数可以组合调用 例如:Select().from(Table).orderByDesc("c1", "c2")

        Parameters:
        columns - Array<out String> 字段名列表
      • orderByDesc

         final Select orderByDesc(Query columns)

        order by子句(倒序),与其他order by类函数可以组合调用 例如:Select().from(Table).orderByDesc(column("c1"), column("c2"))

        Parameters:
        columns - Array<out Query> 待排序的表达式列表
      • orderByDesc

         final Select orderByDesc(List<Query> columns)

        中缀调用order by子句(倒序),与其他order by类函数可以组合调用 例如:Select() from Table orderByDesc listOf(column("c1"), column("c2"))

        Parameters:
        columns - List<Query> 待排序的表达式列表
      • orderByDesc

         final Select orderByDesc(Query column)

        中缀调用order by子句(倒序),与其他order by类函数可以组合调用 例如:Select() from Table orderByDesc column("c1")

        Parameters:
        column - Query 待排序的表达式
      • limit

         final Select limit(Integer count, Integer offset)

        limit子句 例如:Select().from(Table).limit(10, 100)

        Parameters:
        count - Int 条数
        offset - Int 偏移量
      • limit

         final Select limit(Integer count)

        中缀调用limit子句(如果后续没有offset函数调用,那么偏移量为0) 例如:Select() from Table limit 10

        Parameters:
        count - Int 条数
      • offset

         final Select offset(Integer offset)

        中缀调用offset子句(需要保证之前有limit函数调用,否则会产生异常) 例如:Select() from Table limit 10 offset 100

        Parameters:
        offset - Int 偏移量
      • groupBy

         final Select groupBy(Query columns)

        group by子句 例如:Select().from(Table).groupBy(Table.c1, Table.c2)

        Parameters:
        columns - Array<out Query> 分组表达式列表
      • groupBy

         final Select groupBy(Query column)

        中缀调用group by子句 例如:Select() from Table groupBy Table.c1

        Parameters:
        column - Query 分组表达式
      • groupBy

         final Select groupBy(List<Query> columns)

        中缀调用group by子句 例如:Select() from Table groupBy listOf(Table.c1, Table.c2)

        Parameters:
        columns - List<Query> 分组表达式列表
      • groupBy

         final Select groupBy(String columns)

        group by子句 例如:Select().from(Table).groupBy("c1", "c2")

        Parameters:
        columns - Array<out String> 分组列名列表
      • join

         final Select join(String table)

        join子句 例如:Select() from Table1 join "t2"

        Parameters:
        table - String 表名
      • join

         final Select join(TableSchema table)

        join子句 例如:Select() from Table1 join Table2

        Parameters:
        table - TableSchema 实体类伴生对象名
      • join

         final Select join(SelectQuery table)

        join子句(子查询) 例如:Select() from Table1 join (Select() from Table2)

        Parameters:
        table - SelectQuery 子查询dsl
      • on

         final Select on(Query on)

        on子句(需要保证之前调用了join类函数,否则会产生异常) 例如:Select() from Table1 join Table2 on (Table1.c1 eq Table2.c2)

        Parameters:
        on - Query 连接条件表达式
      • joinLateral

         final Select joinLateral(SelectQuery table)

        join lateral子句 例如:Select() from Table1 joinLateral (Select() from Table2)

        Parameters:
        table - SelectQuery 子查询dsl
      • leftJoin

         final Select leftJoin(String table)

        left join子句 例如:Select() from Table1 leftJoin "t2"

        Parameters:
        table - String 表名
      • leftJoin

         final Select leftJoin(TableSchema table)

        left join子句 例如:Select() from Table1 leftJoin Table2

        Parameters:
        table - TableSchema 实体类伴生对象名
      • leftJoin

         final Select leftJoin(SelectQuery table)

        left join子句(子查询) 例如:Select() from Table1 leftJoin (Select() from Table2)

        Parameters:
        table - SelectQuery 子查询dsl
      • leftJoinLateral

         final Select leftJoinLateral(SelectQuery table)

        left join lateral子句 例如:Select() from Table1 leftJoinLateral (Select() from Table2)

        Parameters:
        table - SelectQuery 子查询dsl
      • rightJoin

         final Select rightJoin(String table)

        right join子句 例如:Select() from Table1 rightJoin "t2"

        Parameters:
        table - String 表名
      • rightJoin

         final Select rightJoin(TableSchema table)

        right join子句 例如:Select() from Table1 rightJoin Table2

        Parameters:
        table - TableSchema 实体类伴生对象名
      • rightJoin

         final Select rightJoin(SelectQuery table)

        right join子句(子查询) 例如:Select() from Table1 rightJoin (Select() from Table2)

        Parameters:
        table - SelectQuery 子查询dsl
      • rightJoinLateral

         final Select rightJoinLateral(SelectQuery table)

        right join lateral子句 例如:Select() from Table1 rightJoinLateral (Select() from Table2)

        Parameters:
        table - SelectQuery 子查询dsl
      • innerJoin

         final Select innerJoin(String table)

        inner join子句 例如:Select() from Table1 innerJoin "t2"

        Parameters:
        table - String 表名
      • innerJoin

         final Select innerJoin(TableSchema table)

        inner join子句 例如:Select() from Table1 innerJoin Table2

        Parameters:
        table - TableSchema 实体类伴生对象名
      • innerJoin

         final Select innerJoin(SelectQuery table)

        inner join子句(子查询) 例如:Select() from Table1 innerJoin (Select() from Table2)

        Parameters:
        table - SelectQuery 子查询dsl
      • innerJoinLateral

         final Select innerJoinLateral(SelectQuery table)

        inner join lateral子句 例如:Select() from Table1 innerJoinLateral (Select() from Table2)

        Parameters:
        table - SelectQuery 子查询dsl
      • crossJoin

         final Select crossJoin(String table)

        cross join子句 例如:Select() from Table1 crossJoin "t2"

        Parameters:
        table - String 表名
      • crossJoin

         final Select crossJoin(TableSchema table)

        cross join子句 例如:Select() from Table1 crossJoin Table2

        Parameters:
        table - TableSchema 实体类伴生对象名
      • crossJoin

         final Select crossJoin(SelectQuery table)

        cross join子句(子查询) 例如:Select() from Table1 crossJoin (Select() from Table2)

        Parameters:
        table - SelectQuery 子查询dsl
      • crossJoinLateral

         final Select crossJoinLateral(SelectQuery table)

        cross join lateral子句 例如:Select() from Table1 crossJoinLateral (Select() from Table2)

        Parameters:
        table - SelectQuery 子查询dsl
      • fullJoin

         final Select fullJoin(String table)

        full join子句 例如:Select() from Table1 fullJoin "t2"

        Parameters:
        table - String 表名
      • fullJoin

         final Select fullJoin(TableSchema table)

        full join子句 例如:Select() from Table1 fullJoin Table2

        Parameters:
        table - TableSchema 实体类伴生对象名
      • fullJoin

         final Select fullJoin(SelectQuery table)

        full join子句(子查询) 例如:Select() from Table1 fullJoin (Select() from Table2)

        Parameters:
        table - SelectQuery 子查询dsl
      • fullJoinLateral

         final Select fullJoinLateral(SelectQuery table)

        full join lateral子句 例如:Select() from Table1 fullJoinLateral (Select() from Table2)

        Parameters:
        table - SelectQuery 子查询dsl
      • fetchCountSql

         final String fetchCountSql()

        获取查询总数sql(会复制一个查询副本,并去掉limit与order by信息)

      • pageSql

         final String pageSql(Integer pageSize, Integer pageNumber)

        获取分页查询sql(会复制一个查询副本,并根据参数替换limit信息)

        Parameters:
        pageSize - Int 一页的条数
        pageNumber - Int 页码
      • find

         final <T extends Any> T find(Class<T> clazz)

        获取一条数据

        Parameters:
        clazz - Class<T> 实体类的java class
      • find

         final <T extends Any> T find()

        获取一条数据

      • fetchCount

         Long fetchCount()

        获取总数(会复制一个查询副本,并去掉limit与order by信息)

      • page

         final <T extends Any> Page<T> page(Integer pageSize, Integer pageNumber, Boolean needCount, Function1<List<Map<String, Object>>, List<T>> bind)

        获取分页结果(会复制一个查询副本,并根据参数替换limit信息)

        Parameters:
        pageSize - Int 一页的条数
        pageNumber - Int 页码
        needCount - Boolean 是否需要查询count信息
        bind - Function1<List<Map<String, Any?
      • page

         final <T extends Any> Page<T> page(Class<T> clazz, Integer pageSize, Integer pageNumber, Boolean needCount)

        获取分页结果(会复制一个查询副本,并根据参数替换limit信息)

        Parameters:
        clazz - Class<T> 实体类的java class
        pageSize - Int 一页的条数
        pageNumber - Int 页码
        needCount - Boolean 是否需要查询count信息
      • page

         final <T extends Any> Page<T> page(Integer pageSize, Integer pageNumber, Boolean needCount)

        获取分页结果(会复制一个查询副本,并根据参数替换limit信息)

        Parameters:
        pageSize - Int 一页的条数
        pageNumber - Int 页码
        needCount - Boolean 是否需要查询count信息
      • pageMap

         final Page<Map<String, Object>> pageMap(Integer pageSize, Integer pageNumber, Boolean needCount)

        获取分页结果(会复制一个查询副本,并根据参数替换limit信息)

        Parameters:
        pageSize - Int 一页的条数
        pageNumber - Int 页码
        needCount - Boolean 是否需要查询count信息
      • firstPage

         final <T extends Any> List<T> firstPage(OrderBy sort, Integer pageSize, Function1<List<Map<String, Object>>, List<T>> bind)

        根据排序字段游标排序(首页)

        Parameters:
        sort - OrderBy 排序规则
        pageSize - Int 一页的条数
        bind - Function1<List<Map<String, Any?
      • firstPage

         final <T extends Any> List<T> firstPage(Class<T> clazz, OrderBy sort, Integer pageSize)

        根据排序字段游标排序(首页)

        Parameters:
        clazz - Class<T> 实体类java class
        sort - OrderBy 排序规则
        pageSize - Int 一页的条数
      • firstPage

         final <T extends Any> List<T> firstPage(OrderBy sort, Integer pageSize)

        根据排序字段游标排序(首页)

        Parameters:
        sort - OrderBy 排序规则
        pageSize - Int 一页的条数
      • lastPage

         final <T extends Any> List<T> lastPage(OrderBy sort, Integer pageSize, Function1<List<Map<String, Object>>, List<T>> bind)

        根据排序字段游标排序(尾页)

        Parameters:
        sort - OrderBy 排序规则
        pageSize - Int 一页的条数
        bind - Function1<List<Map<String, Any?
      • lastPage

         final <T extends Any> List<T> lastPage(Class<T> clazz, OrderBy sort, Integer pageSize)

        根据排序字段游标排序(尾页)

        Parameters:
        sort - OrderBy 排序规则
        pageSize - Int 一页的条数
      • lastPage

         final <T extends Any> List<T> lastPage(OrderBy sort, Integer pageSize)

        根据排序字段游标排序(尾页)

        Parameters:
        sort - OrderBy 排序规则
        pageSize - Int 一页的条数
      • previousPage

         final <T extends Any> List<T> previousPage(OrderBy sort, Object value, Integer pageSize, Function1<List<Map<String, Object>>, List<T>> bind)

        根据排序字段游标排序(上一页)

        Parameters:
        sort - OrderBy 排序规则
        value - Any 当前页第一条数据排序字段的值
        pageSize - Int 一页的条数
        bind - Function1<List<Map<String, Any?
      • previousPage

         final <T extends Any> List<T> previousPage(Class<T> clazz, OrderBy sort, Object value, Integer pageSize)

        根据排序字段游标排序(上一页)

        Parameters:
        clazz - Class<T> 实体类java class
        sort - OrderBy 排序规则
        value - Any 当前页第一条数据排序字段的值
        pageSize - Int 一页的条数
      • previousPage

         final <T extends Any> List<T> previousPage(OrderBy sort, Object value, Integer pageSize)

        根据排序字段游标排序(上一页)

        Parameters:
        sort - OrderBy 排序规则
        value - Any 当前页第一条数据排序字段的值
        pageSize - Int 一页的条数
      • previousPageMap

         final List<Map<String, Object>> previousPageMap(OrderBy sort, Object value, Integer pageSize)

        根据排序字段游标排序(上一页)

        Parameters:
        sort - OrderBy 排序规则
        value - Any 当前页第一条数据排序字段的值
        pageSize - Int 一页的条数
      • nextPage

         final <T extends Any> List<T> nextPage(OrderBy sort, Object value, Integer pageSize, Function1<List<Map<String, Object>>, List<T>> bind)

        根据排序字段游标排序(下一页)

        Parameters:
        sort - OrderBy 排序规则
        value - Any 当前页最后一条数据排序字段的值
        pageSize - Int 一页的条数
        bind - Function1<List<Map<String, Any?
      • nextPage

         final <T extends Any> List<T> nextPage(Class<T> clazz, OrderBy sort, Object value, Integer pageSize)

        根据排序字段游标排序(下一页)

        Parameters:
        clazz - Class<T> 实体类java class
        sort - OrderBy 排序规则
        value - Any 当前页最后一条数据排序字段的值
        pageSize - Int 一页的条数
      • nextPage

         final <T extends Any> List<T> nextPage(OrderBy sort, Object value, Integer pageSize)

        根据排序字段游标排序(下一页)

        Parameters:
        sort - OrderBy 排序规则
        value - Any 当前页最后一条数据排序字段的值
        pageSize - Int 一页的条数
      • nextPageMap

         final List<Map<String, Object>> nextPageMap(OrderBy sort, Object value, Integer pageSize)

        根据排序字段游标排序(下一页)

        Parameters:
        sort - OrderBy 排序规则
        value - Any 当前页最后一条数据排序字段的值
        pageSize - Int 一页的条数