MyBatis Plus 实现多表分页查询

MyBatis Plus 实现多表分页查询

service实现类

    /**
     * 根据数据集组id获取分享组的数据
     * @param groupDataInfoVo
     * @return
     */
    @Override
    public RestResponse querySharedGroupIds(GroupDataInfoVo groupDataInfoVo) {
        Page<DataBaseInfo> page = new Page<>(groupDataInfoVo.getCurrent(),groupDataInfoVo.getPageSize());
        List<DataBaseInfo> pageData = baseMapper.querySharedGroupIds(page, groupDataInfoVo);
        log.info("分页下数据信息:{}",pageData);
        return RestResponse.success().setData(pageData).setTotal(page.getTotal());
    }

mapper类

    /**
     * 根据数据集组id获取分享组的数据
     * @param page
     * @param groupDataInfoVo
     * @return
     */
    List<DataBaseInfo> querySharedGroupIds(Page<DataBaseInfo> page, @Param("groupDataInfoVo") GroupDataInfoVo groupDataInfoVo);

xml

 <!--根据数据集组id获取分享组的数据-->
    <select id="querySharedGroupIds" resultType="com.pactera.magic.entity.DataBaseInfo">
        SELECT DISTINCT
        b.*
        FROM
        magicdb_base.bs_adm_data_group AS g
        LEFT JOIN magicdb_data.dt_data_grp_info i ON g.business_belong_id = i.id
        AND i.is_dtl = '0'
        LEFT JOIN magicdb_data.dt_data_base_info b ON b.id = g.business_id
        AND b.is_dtl = '0'
        <where>
            g.is_dtl = '0'
            <if test="groupDataInfoVo.datagrpId!=null and groupDataInfoVo.datagrpId!=''">
                AND g.business_belong_id = #{groupDataInfoVo.datagrpId}
            </if>
            <if test="groupDataInfoVo.dataStatus!=null and groupDataInfoVo.dataStatus!=''">
                AND b.data_status= #{groupDataInfoVo.dataStatus}
            </if>
            <if test="groupDataInfoVo.dataName!=null and groupDataInfoVo.dataName!=''">
                AND b.data_name like concat('%',#{groupDataInfoVo.dataName},'%')
            </if>
            <if test="groupDataInfoVo.dataType!=null and groupDataInfoVo.dataType!=''">
                AND b.data_type = #{groupDataInfoVo.dataType}
            </if>
            <if test="groupDataInfoVo.startDate!=null and groupDataInfoVo.startDate!=''">
                and b.created >=DATE_FORMAT(#{groupDataInfoVo.startDate},'%Y-%m-%d 00:00:00')
            </if>
            <if test="groupDataInfoVo.endDate!=null and groupDataInfoVo.endDate!=''">
                AND b.created <![CDATA[ <= ]]>DATE_FORMAT(#{groupDataInfoVo.endDate},'%Y-%m-%d 23:59:59')
            </if>
            ORDER BY created DESC
        </where>

    </select>

实体类

/**
 * 分享组下的数据集的数据
 */
@Data
public class GroupDataInfoVo extends Page implements Serializable {
    private static final long serialVersionUID = 12L;

    /**
     * 数据名称
     */
    private String dataName;
    /**
     * 状态 状态 0 引入中 1引入成功 2 引入失败
     */
    private String dataStatus;
    /**
     * 数据描述
     */
    private String dataDesc;

    /**
     * 数据集id
     */
    private String datagrpId;
    /**
     * 开始时间
     */
    private String startDate;
    /**
     * 结束时间
     */
    private String endDate;

    /**
     * 数据格式  文件格式为1 结构化数据为0
     */
    private String dataType;

}

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
对于MyBatis-Plus的多表分页查询,可以按照以下步骤进行操作: 1. 首先,新建一个MybatisPlusConfig配置类文件,该文件用于配置MyBatis-Plus的相关配置。 2. 接下来,创建一个分页类,该类用于封装分页查询的参数,包括页码、每页记录数等信息。 3. 根据业务需要,组装查询构造器。可以使用MyBatis-Plus提供的QueryWrapper类来构建查询条件,根据需要使用不同的查询操作符,如全值匹配、模糊匹配、大于等于、小于等于等。示例中使用了switch语句来判断不同的操作符,并根据操作符调用相应的方法构建查询条件。 4. 编写ServeImpl,该类用于处理业务逻辑,包括调用Mapper接口进行数据库查询操作,并使用分页类来进行分页查询。 5. 最后,编写mapper.xml文件,定义SQL语句,包括多表联合查询的SQL语句,并将查询结果映射到Java对象中。 通过以上步骤,就可以实现MyBatis-Plus的多表分页查询功能。具体的实现过程可以根据实际需求进行调整和扩展。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [MyBatis-Plus多表联合查询并且分页(3表联合)](https://download.csdn.net/download/weixin_38685173/12742340)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *2* *3* [MybatisPlus多表分页查询](https://blog.csdn.net/weixin_37777574/article/details/122973311)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值