All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.gitee.qdbp.jdbc.stream.CrudOnAfterOrderByStream Maven / Gradle / Ivy

package com.gitee.qdbp.jdbc.stream;

import java.util.List;
import com.gitee.qdbp.able.exception.ServiceException;
import com.gitee.qdbp.able.jdbc.condition.DbWhere;
import com.gitee.qdbp.able.jdbc.ordering.Orderings;
import com.gitee.qdbp.able.jdbc.paging.Paging;
import com.gitee.qdbp.jdbc.api.CrudDao;

/**
 * 排序查询后续操作
* orderBy后续操作有 paging / list|listFieldValues * * @author zhaohuihua * @version 20210529 */ public class CrudOnAfterOrderByStream { protected final CrudDao dao; protected final DbWhere where; protected final Orderings orderings; CrudOnAfterOrderByStream(CrudDao dao, DbWhere where, Orderings orderings) { this.dao = dao; this.where = where; this.orderings = orderings; } /** * 根据条件分页查询实体列表
*
    List<SysUser> users = qdbcBoot.crudStream(SysUser.class)
        .where("userType").equals(1)
            .and("createTime").between(DateTools.addDay(now, -1), DateTools.addDay(now, +1))
            .and().subCondition((w) -> {
                w.on("userCode").like("test")
                 .or("realName").like("test");
            })
            .end()
        .orderBy("createTime desc")
        .pageBy(1, 10) // 查第1页,每页10行
        .list().asPartList(); // 分页后返回的是PageList, 需要转换为普通List
        // .listFieldValues("deptCode", true, String.class).asPartList(); // 查询部门编号, true=去重
     * 
* * @param pageIndex 第几页 * @param pageSize 每页行数 * @return 列表数据 */ public CrudOnAfterPagingStream pageBy(int pageIndex, int pageSize) { return pageBy(new Paging(pageIndex, pageSize)); } /** * 根据条件分页查询实体列表
*
    List<SysUser> users = qdbcBoot.crudStream(SysUser.class)
        .where("userType").equals(1)
            .and("createTime").between(DateTools.addDay(now, -1), DateTools.addDay(now, +1))
            .and().subCondition((w) -> {
                w.on("userCode").like("test")
                 .or("realName").like("test");
            })
            .end()
        .orderBy("createTime desc")
        .pageBy(1, 10, 88) // 查第1页,每页10行, 88=提前查询的总行数
        .list().asPartList(); // 分页后返回的是PageList, 需要转换为普通List
        // .listFieldValues("deptCode", true, String.class).asPartList(); // 查询部门编号, true=去重
     * 
* * @param pageIndex 第几页 * @param pageSize 每页行数 * @param total 总行数(用于提前查询总行数的情况) * @return 列表数据 */ public CrudOnAfterPagingStream pageBy(int pageIndex, int pageSize, int total) { return pageBy(new Paging(pageIndex, pageSize, total)); } /** * 根据条件分页查询实体列表
*
    List<SysUser> users = qdbcBoot.crudStream(SysUser.class)
        .where("userType").equals(1)
            .and("createTime").between(DateTools.addDay(now, -1), DateTools.addDay(now, +1))
            .and().subCondition((w) -> {
                w.on("userCode").like("test")
                 .or("realName").like("test");
            })
            .end()
        .orderBy("createTime desc")
        .pageBy(1, 10, false) // 查第1页,每页10行, false=无需统计总数
        .list().asPartList(); // 分页后返回的是PageList, 需要转换为普通List
        // .listFieldValues("deptCode", true, String.class).asPartList(); // 查询部门编号, true=去重
     * 
* * @param pageIndex 第几页 * @param pageSize 每页行数 * @param needCount 是否统计总数 * @return 列表数据 */ public CrudOnAfterPagingStream pageBy(int pageIndex, int pageSize, boolean needCount) { return pageBy(new Paging(pageIndex, pageSize, needCount)); } /** * 根据条件分页查询实体列表
*
    List<SysUser> users = qdbcBoot.crudStream(SysUser.class)
        .where("userType").equals(1)
            .and("createTime").between(DateTools.addDay(now, -1), DateTools.addDay(now, +1))
            .and().subCondition((w) -> {
                w.on("userCode").like("test")
                 .or("realName").like("test");
            })
            .end()
        .orderBy("createTime desc")
        .pageBy(new Paging(1,10,false)) // 查第1页,每页10行, false=无需统计总数
        .list().asPartList(); // 分页后返回的是PageList, 需要转换为普通List
        // .listFieldValues("deptCode", true, String.class).asPartList(); // 查询部门编号, true=去重
     * 
* * @param paging 分页参数 * @return 列表数据 */ public CrudOnAfterPagingStream pageBy(Paging paging) { return new CrudOnAfterPagingStream<>(dao, where, orderings, paging); } /** * 根据条件查询实体列表
*
    List<SysUser> users = qdbcBoot.crudStream(SysUser.class)
        .select("id,userCode,realName") // 只查某些字段
        // .selectExclude("password") // 排除掉密码字段
        .where("userType").equals(1)
            .and("createTime").between(DateTools.addDay(now, -1), DateTools.addDay(now, +1))
            .and().subCondition((w) -> {
                w.on("userCode").like("test")
                 .or("realName").like("test");
            })
            .end()
        .orderBy("createTime desc")
        .list();
     * 
* * @return 列表数据 */ public List list() { return dao.list(where, orderings); } /** * 根据条件分页查询某个字段的值列表
*
    List<String> deptCodes = qdbcBoot.crudStream(SysUser.class)
        .where("userType").equals(1)
            .and("createTime").between(DateTools.addDay(now, -1), DateTools.addDay(now, +1))
            .and().subCondition((w) -> {
                w.on("userCode").like("test")
                 .or("realName").like("test");
            })
            .end()
        .orderBy("createTime desc")
        .listFieldValues("deptCode", true, String.class); // 查询部门编号, true=去重
     * 
* * @param fieldName 指定字段名 * @param distinct 是否去重 * @param valueClazz 字段值类型 * @return 字段的值列表 */ public List listFieldValues(String fieldName, boolean distinct, Class valueClazz) throws ServiceException { return dao.listFieldValues(fieldName, distinct, where, orderings, valueClazz); } }




© 2015 - 2025 Weber Informatics LLC | Privacy Policy