五、自定义Mapper\六、自定义Service
五、自定义Mapper
当通用Mapper无法满足我们的需求时,我们可以自定义基于Mapper接口的xml文件,并在xml文件中配置SQL语句
1、接口方法定义
在UserMapper接口中定义如下方法
List<User> selectAllByName(String name);
2、创建xml文件
在resources目录中创建mapper目录,创建UserMapper.xml
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> <mapper namespace="com.atguigu.mybatisplus.mapper.UserMapper"> <sql id="Base_Column_List"> id, name, age, email </sql> <select id="selectAllByName" resultType="com.atguigu.mybatisplus.entity.User"> select <include refid="Base_Column_List"/> from user where name = #{name} </select> </mapper>
注意:MP中mapper目录是持久层映射文件的默认目录,在resources目录下直接创建mapper目录,并将xml文件放在这个目录下即可,如果是其他目录,需要配置mapper-locations,例如:
application.properties配置文件:
# 指定mapper的xml文件存放路径 mybatis-plus.mapper-locations=classpath:xml/*.xml
3、测试条件查询
在MapperTests中创建如下测试用例
@Test public void testSelectAllByName(){ List<User> users = userMapper.selectAllByName("Helen"); users.forEach(System.out::println); }
六、自定义Service
1、添加接口方法
UserService中添加接口方法
List<User> listAllByName(String name);
2、实现接口方法
@Override public List<User> listAllByName(String name) { // baseMapper对象指向当前业务的mapper对象 return baseMapper.selectAllByName("Helen"); }
4、测试
ServiceTests中添加测试方法
@Test public void testListAllByName(){ List<User> users = userService.listAllByName("Helen"); users.forEach(System.out::println); }
本文来自博客园,作者:Lz_蚂蚱,转载请注明原文链接:https://www.cnblogs.com/leizia/p/15501655.html
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步