千家信息网

MyBatis-Plus 自定义sql语句

发表于:2025-01-26 作者:千家信息网编辑
千家信息网最后更新 2025年01月26日,一、引言MP自带的条件构造器虽然很强大,有时候也避免不了写稍微复杂一点业务的sql,那么那么今天说说MP怎么自定义sql语句吧。二、配置自定义的sql当然是写在XML文件中的啦,那么首先来定义xml文
千家信息网最后更新 2025年01月26日MyBatis-Plus 自定义sql语句

  一、引言

  MP自带的条件构造器虽然很强大,有时候也避免不了写稍微复杂一点业务的sql,那么那么今天说说MP怎么自定义sql语句吧。

  二、配置

  自定义的sql当然是写在XML文件中的啦,那么首先来定义xml文件的位置,在yml配置文件如下

  mybatis-plus:

  # 如果是放在src/main/java目录下 classpath:/com/*/*/mapper/*Mapper.xml

  # 如果是放在resource目录 classpath:/mapper/**.xml

  mapper-locations: classpath:/mapper/**.xml

  三、具体实现

  使用注解实现:

  在我们Mapper接口中定义自定义方法即可。

  /**

  * @Auther: IT贱男

  * @Date: 2019/6/10 14:40

  * @Description: User对象持久层

  */

  public interface UserMapper extends BaseMapper {

  /**

  *

  * 如果自定义的方法还希望能够使用MP提供的Wrapper条件构造器,则需要如下写法

  *

  * @param userWrapper

  * @return

  */

  @Select("SELECT * FROM user ${ew.customSqlSegment}")

  List selectByMyWrapper(@Param(Constants.WRAPPER) Wrapper userWrapper);

  /**

  * 和Mybatis使用方法一致

  * @param name

  * @return

  */

  @Select("SELECT * FROM user where name = #{name}")

  List selectByName(@Param("name") String name);

  }

  使用xml文件实现:

  使用xml一定要指定xml文件所在位置

  /**

  * @Auther: IT贱男

  * @Date: 2019/6/10 14:40

  * @Description: User对象持久层

  */

  public interface UserMapper extends BaseMapper {

  /**

  *

  * 如果自定义的方法还希望能够使用MP提供的Wrapper条件构造器,则需要如下写法

  *无锡妇科医院 http://www.xasgfk.cn/

  * @param userWrapper

  * @return

  */

  List selectByMyWrapper(@Param(Constants.WRAPPER) Wrapper userWrapper);

  /**

  * 和Mybatis使用方法一致

  * @param name

  * @return

  */

  List selectByName(@Param("name") String name);

  }

  SELECT * FROM user where name = #{name}

  SELECT * FROM user ${ew.customSqlSegment}

  测试测试:

  /**

  * 自定义sql查询语句

  */

  @Test

  public void selectByMySelect() {

  List users = userMapper.selectByName("王天风");

  users.forEach(System.out::println);

  }

  /**

  * 自定义sql使用Wrapper

  */

  @Test

  public void selectByMyWrapper() {

  QueryWrapper wrapper = new QueryWrapper();

  wrapper.like("name", "雨").lt("age", 40);

  List users = userMapper.selectByMyWrapper(wrapper);

  users.forEach(System.out::println);

  }


文件 方法 条件 构造器 语句 一致 位置 使用方法 写法 对象 目录 测试 配置 复杂 强大 业务 医院 妇科 引言 所在 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 网络安全防护措施应遵循 北京信承互联网科技有限公 泾县智能软件开发服务解决方案 全国计算机等级考网络技术 数据库的6大对象 excel按大于选数据库 第一摩码教育网络技术 苍穹里怎样加载个人地理数据库 计算机三级网络技术考试编程 jsp如何获取数据库数据 手机一个软件的数据库在哪儿 linux聊天服务器 网络安全等级是指什么 网络安全服务公司注册条件 上海移动软件开发价格 服务器空间架设五种方法 山东济南市存储服务器销售电话 上海安昌网络安全技术有限公司 网络安全杜绝垃圾食品的手抄报 三国志战略版牛气冲天服务器 大学计算机网络技术分数线 信息管理系统软件开发需求分析 数字货币叠加网络安全 数据库怎么插入语句 个人信息数据库开题报告 文科软件开发好不好 如何删除空约束数据库 徐州小型软件开发售后服务 软件开发平台 有哪些 文件服务器 开发
0