文章目录
- 通用Mapper接口
- 简单插入数据-insert
- 简单删除数据-deleteById
- 简单修改数据-updateById
- 简单查询数据-selectById
- 通用service接口
- Service接口-插入数据
- Service接口-删除数据
- Service接口-修改数据
- Service接口-查询数据
- 自定义接口方法
- 自定义Mapper接口方法
通用Mapper接口
- Mapper接口继承自BaseMapper接口,由BaseMapper接口提供了很多单表的增删改查相关的操作方法。在这一章节,介绍一些Mapper接口中的方法。
简单插入数据-insert
- 插入一条数据
@Test
void insert(){
User user = new User();
user.setId(6L);
user.setName("Mike");
user.setAge(33);
user.setEmail("test6@powernode.com");
userMapper.insert(user);
}
简单删除数据-deleteById
- 根据id删除数据
@Test
void deleteOne(){
userMapper.deleteById(6L);
}
简单修改数据-updateById
- 测试修改全部数据
@Test
void updateById(){
User user = new User();
user.setId(6L);
user.setName("迈克");
user.setAge(35);
user.setEmail("maike6@powernode.com");
userMapper.updateById(user);
}
- 测试修改部分数据
@Test
void updateById(){
User user = new User();
user.setId(6L);
user.setName("Mike");
user.setAge(35);
user.setEmail("test6@powernode.com");
userMapper.updateById(user);
}
简单查询数据-selectById
- 根据Id查询
@Test
void selectById(){
User user1 = userMapper.selectById(6L);
System.out.println(user1);
}
- 查询所有
@Test
void selectList() {
List<User> userList = userMapper.selectList(null);
System.out.println(userList);
}
通用service接口
-
MybatisPlus还提供了IService接口和对应的实现类ServiceImpl,该实现类已经提供好了一些对应的Service相关的方法,在某些场景下,我们可以直接使用ServiceImpl提供的方法,实现对应的功能。
-
IService接口中包含了service相关的一些增删改查方法
-
ServiceImpl实现类提供了service相关的增删改查方法的实现
-
UserService接口继承自IService接口
-
UserServiceImpl类继承ServiceImpl<UserMapper,User>
-
关系如下:
-
注入UserService对象,测试相关方法
@Autowired
private UserService userService;
Service接口-插入数据
@Test
void insertService(){
User user = new User();
user.setId(7L);
user.setName("zhangsan");
user.setAge(35);
user.setEmail("zhangsan@powernode.com");
userService.save(user);
}
Service接口-删除数据
@Test
void deleteService(){
userService.removeById(7L);
}
Service接口-修改数据
@Test
void updateService(){
User user = new User();
user.setId(6L);
user.setAge(40);
userService.updateById(user);
}
Service接口-查询数据
@Test
void selectService(){
List<User> userList = userService.selectList();
System.out.println(userList);
}
自定义接口方法
- 通过继承MybatisPlus提供的Service接口,既可以拓展自己的service方法,也可以使用现有的一些service方法
- MybatisPlus除了给我们提供了这些丰富的接口方法以外,对于我们自己的需求,也可以编写自定义的接口方法,我们通过自己编写SQL语句的形式,实现想要的SQL需求
自定义Mapper接口方法
- Mapper接口中提供抽象方法
@Mapper
public interface UserMapper extends BaseMapper<User> {
User selectByName(String name);
}
- 提供映射配置文件,提供对应的SQL语句
<?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.powernode.mapper.UserMapper">
<select id="selectByName" resultType="com.powernode.domain.User">
select * from user where name = #{value}
</select>
</mapper>
- 测试自定义的Mapper接口方法
@Test
void myMethod(){
User user = userMapper.selectByName("Jone");
System.out.println(user);
}
- 自定义接口的语法规范和之前编写Mybatis的语法规范一样,所以可以看出,MybatisPlus是无侵入式的(引入MybatisPlus并不会对于原先的语法造成任何改变。)