ICode9

精准搜索请尝试: 精确搜索
首页 > 数据库> 文章详细

MyBatis-Plus 自定义sql语句搭配调用QueryWrapper的实现条件查询

2021-09-06 14:31:27  阅读:277  来源: 互联网

标签:QueryWrapper name 自定义 userWrapper community Plus Wrapper sql


一、引言
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);

标签:QueryWrapper,name,自定义,userWrapper,community,Plus,Wrapper,sql
来源: https://blog.csdn.net/yiqiu1959/article/details/120133241

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有