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

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

package com.gitee.qdbp.jdbc.stream;

import java.util.List;
import java.util.Map;
import org.springframework.jdbc.core.RowMapper;
import com.gitee.qdbp.able.jdbc.paging.Paging;
import com.gitee.qdbp.jdbc.api.SqlDao;
import com.gitee.qdbp.jdbc.sql.SqlBuffer;

/**
 * 设置参数的后续操作: find|list|insert|update|delete / pageBy / resultAs
* * @author zhaohuihua * @version 20210530 */ public class SqlOnAfterParamsStream { protected final SqlDao dao; protected final String sqlId; protected final Object params; SqlOnAfterParamsStream(SqlDao dao, String sqlId, Object params) { this.dao = dao; this.sqlId = sqlId; this.params = params; } public SqlBuffer getContent() { return this.dao.getSqlContent(sqlId, params); } /** * 查询数据, 结果为Map结构
*
    Map<String, Object> user = qdbcBoot.sqlStream()
        .sqlId("SysUserMapper:queryRoleUsers")
        .params(map)
        .find();
     * 
* * @return Map结果 */ public Map find() { return this.dao.findForMap(sqlId, params); } /** * 查询数据列表, 结果为Map列表
*
    List<Map<String, Object>> users = qdbcBoot.sqlStream()
        .sqlId("SysUserMapper:queryRoleUsers")
        .params(map)
        .list();
     * 
* * @return Map列表 */ public List> list() { return this.dao.listForMaps(sqlId, params); } /** * 执行插入语句 * * @return 影响行数 */ public int insert() { return this.dao.insert(sqlId, params); } /** * 执行更新语句 * * @return 影响行数 */ public int update() { return this.dao.update(sqlId, params); } /** * 执行删除语句 * * @return 影响行数 */ public int delete() { return this.dao.delete(sqlId, params); } /** * 设置结果实体类型
*
    List<SysUser> users = qdbcBoot.sqlStream()
        .sqlId("SysUserMapper:queryRoleUsers")
        .params(map)
        .resultAs(SysUser.class)
        .list();
     * 
* * @param 实体类型 * @param resultType 实体类 * @return 返回后续流式操作对象 */ public SqlOnResultTypeStream resultAs(Class resultType) { return new SqlOnResultTypeStream<>(dao, sqlId, params, resultType); } /** * 设置结果实体类型 * * @param 实体类型 * @param rowMapper 结果转换类 * @return 返回后续流式操作对象 */ public SqlOnResultTypeStream resultAs(RowMapper rowMapper) { return new SqlOnResultTypeStream<>(dao, sqlId, params, rowMapper); } /** * 根据条件分页查询实体列表
*
    List<Map<String, Object>> users = qdbcBoot.sqlStream()
        .sqlId("SysUserMapper:queryRoleUsers")
        .params(map)
        .pageBy(1, 10) // 查第1页,每页10行
        .list().asPartList(); // 分页后返回的是PageList, 需要转换为普通List
     * 
* * @param pageIndex 第几页 * @param pageSize 每页行数 * @return 返回后续流式操作对象 */ public SqlOnAfterPagingStream pageBy(int pageIndex, int pageSize) { return pageBy(new Paging(pageIndex, pageSize)); } /** * 根据条件分页查询实体列表
*
    List<Map<String, Object>> users = qdbcBoot.sqlStream()
        .sqlId("SysUserMapper:queryRoleUsers")
        .params(map)
        .pageBy(1, 10, 88) // 查第1页,每页10行, 88=提前查询的总行数
        .list().asPartList(); // 分页后返回的是PageList, 需要转换为普通List
     * 
* * @param pageIndex 第几页 * @param pageSize 每页行数 * @param total 总行数(用于提前查询总行数的情况) * @return 返回后续流式操作对象 */ public SqlOnAfterPagingStream pageBy(int pageIndex, int pageSize, int total) { return pageBy(new Paging(pageIndex, pageSize, total)); } /** * 根据条件分页查询实体列表
*
    List<Map<String, Object>> users = qdbcBoot.sqlStream()
        .sqlId("SysUserMapper:queryRoleUsers")
        .params(map)
        .pageBy(1, 10, false) // 查第1页,每页10行, false=无需统计总数
        .list().asPartList(); // 分页后返回的是PageList, 需要转换为普通List
     * 
* * @param pageIndex 第几页 * @param pageSize 每页行数 * @param needCount 是否统计总数 * @return 返回后续流式操作对象 */ public SqlOnAfterPagingStream pageBy(int pageIndex, int pageSize, boolean needCount) { return pageBy(new Paging(pageIndex, pageSize, needCount)); } /** * 根据条件分页查询实体列表
*
    List<Map<String, Object>> users = qdbcBoot.sqlStream()
        .sqlId("SysUserMapper:queryRoleUsers")
        .params(map)
        .pageBy(new Paging(1,10,false)) // 查第1页,每页10行, false=无需统计总数
        .list().asPartList(); // 分页后返回的是PageList, 需要转换为普通List
     * 
* * @param paging 分页参数 * @return 返回后续流式操作对象 */ public SqlOnAfterPagingStream pageBy(Paging paging) { return new SqlOnAfterPagingStream(dao, sqlId, params, paging); } }




© 2015 - 2025 Weber Informatics LLC | Privacy Policy