五、自定义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);
}
posted @   Lz_蚂蚱  阅读(226)  评论(0编辑  收藏  举报
点击右上角即可分享
微信分享提示
评论
收藏
关注
推荐
深色
回顶
收起