mybatis-plus分页,自定义返回的结果类型,实现分页

mybatis-plus分页,自定义返回的结果类型,实现分页

通过自己自定义返回的实体类型,这里用泛型 “T” 举例,真正开发时换成具体的实体类;通过将 mybatis-plus提供的Page 封装的分页,实现传入到xml中,查询数据,自动计算总条数,当前页码,每页显示条数,总页数等参数。省去自己再手动封装分页,最后将查询的结果,设置到分页插件数据中,返回整个分页实体即可(注:xml中,最后不需要再写limit 参数进行分页了)。

	//控制层
    @equestMapping("/getData")
    public ResultBody getData(String taskName, String enterpriseName, String startTime,String endTime, Page<T> page) {
        return shopDetectService.getData(taskName, startTime, endTime, page);
    }


	//service 实现层
	@Override
    public ResultBody getData(String taskName, String startTime, String endTime, Page<T> page) {

        List<T> result= shopDetectMapper.getData(taskName, startTime, endTime, page);
        //不为空
        if (!CollectionUtils.isEmpty(result)){
			//数据再处理
           ......

        }
        //设置数据
        page.setRecords(result);
        return ResultBody.success(page);
    }


	//mapper层
    List<T> getData(@Param("taskName") String taskName,  @Param("startTime") String startTime, @Param("endTime") String endTime, @Param("page") Page<T> page);


	//xml层
 	<select id="getData" resultType="com.test.T">
        SELECT
            d.title taskName,
            s.shop_name shopName,
            CONCAT( d.agent_start_date,'~', d.agent_end_date) detectTime,
            d.creator_id,
            t.update_time reportUpdateTime,
            IFNULL(u.show_name, u.mobile_phone) showName
        FROM
            is_detect_c_user_task t
        INNER JOIN 表1 d ON t.detect_id= d.id
        INNER JOIN 表2  s ON t.shop_id = s.id
        INNER JOIN 表3 u ON t.user_id = u.id
        WHERE
            1 = 1
        <if test="taskName != null and taskName != ''">
            AND d.title like CONCAT ('%', #{taskName}, '%')
        </if>
        <if test="startTime != null and startTime != ''">
            AND t.update_time &gt;= #{startTime}
        </if>
        <if test="endTime != null and endTime != ''">
            AND t.update_time &lt;= #{endTime}
        </if>
        ORDER BY t.update_time desc
    </select>


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值