MyBatis-Plus 自定义sql语句搭配调用QueryWrapper的实现条件查询
2021/9/6 19:09:19
本文主要是介绍MyBatis-Plus 自定义sql语句搭配调用QueryWrapper的实现条件查询,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
一、引言
MP自带的条件构造器虽然很强大,有时候也避免不了写稍微复杂一点业务的sql,那么那么今天说说MP怎么自定义sql语句吧。另外,除了下文提到的通过queryWrapper实现筛选以外,调用查询时,如果你需要做分页,通过mybatisPlus提供的分页接口IPage,能够避免自己手写分页的sql语句
二、具体实现
使用注解实现:
在我们Mapper接口中定义自定义方法即可。
public interface UserMapper extends BaseMapper<TaskEntity> { /** * 如果自定义的方法还希望能够使用MP提供的Wrapper条件构造器,则需要如下写法 * @param userWrapper */ @Select("SELECT * FROM user ${ew.customSqlSegment}") List<StatisticsCommunityModel> getCockpitCommunityTop(@Param(Constants.WRAPPER)Wrapper<TaskEntity> userWrapper);
使用xml实现:
public interface TaskMapper extends BaseMapper<TaskEntity> { List<StatisticsCommunityModel> getCockpitCommunityTop(@Param(Constants.WRAPPER) Wrapper<TaskEntity> userWrapper); }
<select id="getCockpitCommunityTop" resultType="com.chinaentropy.community.domain.model.task.StatisticsCommunityModel"> SELECT community_name,community_code,COUNT(community_name) AS community_count FROM tk_task ${ew.customSqlSegment} GROUP BY community_name,community_code ORDER BY COUNT(community_name) DESC limit 10 </select>
无论使用哪种方式实现两者的搭配使用,
其核心都是 ${ew.customSqlSegment} 在SQL语句占位,@Param(Constants.WRAPPER)Wrapper userWrapper) 设置入参
最后在需要的时候传入已经配置好的queryWrapper
例如:taskMapper.getCockpitCommunityTop(queryWrapper);
这篇关于MyBatis-Plus 自定义sql语句搭配调用QueryWrapper的实现条件查询的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-11-15JavaMailSender是什么,怎么使用?-icode9专业技术文章分享
- 2024-11-15JWT 用户校验学习:从入门到实践
- 2024-11-15Nest学习:新手入门全面指南
- 2024-11-15RestfulAPI学习:新手入门指南
- 2024-11-15Server Component学习:入门教程与实践指南
- 2024-11-15动态路由入门:新手必读指南
- 2024-11-15JWT 用户校验入门:轻松掌握JWT认证基础
- 2024-11-15Nest后端开发入门指南
- 2024-11-15Nest后端开发入门教程
- 2024-11-15RestfulAPI入门:新手快速上手指南