前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >MyBatisPlus优雅的自定义SQL实现表联查并且使用IPage分页

MyBatisPlus优雅的自定义SQL实现表联查并且使用IPage分页

作者头像
tongyao
发布2022-06-09 15:12:57
2.2K0
发布2022-06-09 15:12:57
举报
文章被收录于专栏:tongyao

一直追求优雅代码和逻辑,一般正常自定义SQL使用分页工具分页,还得再写一个查询行数的接口,业务性能不说,感觉多此一举。

参考文章:https://www.cnblogs.com/jiaozhang/p/14473344.html

mapper

代码语言:javascript
复制
//自定义查询数据
IPage<Map<String,Object>> query(@Param("page") Page<Map<String,Object>> page,@Param("params") Map<String, Object> params);

service

代码语言:javascript
复制
IPage<Map<String,Object>> query(@Param("page") Page<Map<String,Object>> page, @Param("params") Map<String, Object> params);

serviceImpl

代码语言:javascript
复制
@Override
    public IPage<Map<String, Object>> query(Page<Map<String, Object>> page, Map<String, Object> params) {
        return userMapper.query(page,params);
    }

xml

代码语言:javascript
复制
<select id="query" resultType="Map">
	select
		user.username,
		dict.name
	from user
	inner join dict on (user.sex = dict.id)

	where 1=1

	<if test="params.username != null and params.username != ''">
		and user.username like concat('%',#{params.username}, '%')
	</if>
</select>

controller

代码语言:javascript
复制
Map<String, Object> params = new HashMap<>();
params.put("username",username);

Page<Map<String,Object>> page = new Page<>(1,10);
IPage<Map<String,Object>> iPage = userService.query(page,params);
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2021年12月17日,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档