Mapper CRUD接口(推荐)
以下介绍常用方法,全部方法请查阅mybatis-plus官网
Insert方法
// 插入一条记录
int insert(T entity);
参数说明
类型 | 参数名 | 描述 |
---|---|---|
T | entity | 实体对象 |
测试方法
int insert(T entity);
@Autowired
private UserMapper userMapper;
@Test
void test() {
User user = new User(null,"小明",18,"123@qq.com");
int insert = userMapper.insert(user);
System.out.println("insert = " + insert);
}
返回值为受影响的行数
mybatis-plus的主键默认采用雪花算法生成
Delete方法
// 删除(根据ID 批量删除)
int deleteBatchIds(@Param(Constants.COLLECTION) Collection<? extends Serializable> idList);
// 根据 ID 删除
int deleteById(Serializable id);
参数说明
类型 | 参数名 | 描述 |
---|---|---|
Collection<? extends Serializable> | idList | 主键 ID 列表(不能为 null 以及 empty) |
Serializable | id | 主键 ID |
测试方法
int deleteById(Serializable id);
@Autowired
private UserMapper userMapper;
@Test
void test() {
int i = userMapper.deleteById(1719281021255974914L);
System.out.println("i = " + i);
}
返回值为受影响的行数
int deleteBatchIds(@Param(Constants.COLLECTION) Collection<? extends Serializable> idList);
@Autowired
private UserMapper userMapper;
@Test
void test() {
List<Long> ids = List.of(1L, 2L, 3L);
int i = userMapper.deleteBatchIds(ids);
System.out.println("i = " + i);
}
返回值为受影响的行数
Update方法
// 根据 whereWrapper 条件,更新记录
int update(@Param(Constants.ENTITY) T updateEntity, @Param(Constants.WRAPPER) Wrapper<T> whereWrapper);
// 根据 ID 修改
int updateById(@Param(Constants.ENTITY) T entity);
参数说明
类型 | 参数名 | 描述 |
---|---|---|
T | entity | 实体对象 (set 条件值,可为 null) |
Wrapper<T> | updateWrapper | 实体对象封装操作类(可以为 null,里面的 entity 用于生成 where 语句) |
在调用updateById
方法前,需要在T entity
(对应的实体类)中的主键属性上加上@TableId
注解。
未添加注解的,默认以id为主键
测试方法
int updateById(@Param(Constants.ENTITY) T entity);
@Autowired
private UserMapper userMapper;
@Test
void test() {
User user = new User(4L, "修改", 18,"123@qq.com");
int i = userMapper.updateById(user);
System.out.println("i = " + i);
}
返回值为受影响的行数
int update(@Param(Constants.ENTITY) T updateEntity, @Param(Constants.WRAPPER) Wrapper<T> whereWrapper);
@Autowired
private UserMapper userMapper;
@Test
void test() {
User user = new User(10L, "小红", 22, "123@qq.com");
LambdaUpdateWrapper<User> updateWrapper = new LambdaUpdateWrapper<>();
//修改姓名为“Billie”的数据
updateWrapper.eq(User::getName, "Billie");
int i = userMapper.update(user, updateWrapper);
System.out.println("i = " + i);
}
返回值为受影响的行数
Select方法
// 根据 ID 查询
T selectById(Serializable id);
// 根据 Wrapper 条件,查询一条记录
T selectOne(@Param(Constants.WRAPPER) Wrapper<T> queryWrapper);
// 根据 Wrapper 条件,查询全部记录
List<T> selectList(@Param(Constants.WRAPPER) Wrapper<T> queryWrapper);
// 根据 Wrapper 条件,查询总记录数
Integer selectCount(@Param(Constants.WRAPPER) Wrapper<T> queryWrapper);
// 根据 Wrapper 条件,查询全部记录(并翻页)
IPage<T> selectPage(IPage<T> page, @Param(Constants.WRAPPER) Wrapper<T> queryWrapper);
参数说明
类型 | 参数名 | 描述 |
---|---|---|
Serializable | id | 主键 ID |
Wrapper<T> | queryWrapper | 实体对象封装操作类(可以为 null) |
IPage<T> | page | 分页查询条件(可以为 RowBounds.DEFAULT) |
在测试前先恢复原来的数据
测试方法
T selectById(Serializable id);
@Autowired
private UserMapper userMapper;
@Test
void test() {
User user = userMapper.selectById(1L);
System.out.println("user = " + user);
}
返回值为对应的实体类
T selectOne(@Param(Constants.WRAPPER) Wrapper<T> queryWrapper);
@Autowired
private UserMapper userMapper;
@Test
void test() {
LambdaQueryWrapper<User> queryWrapper=new LambdaQueryWrapper<>();
//查询姓名为Tom的数据
queryWrapper.eq(User::getName,"Tom");
User user = userMapper.selectOne(queryWrapper);
System.out.println("user = " + user);
}
返回值为对应的实体类
List<T> selectList(@Param(Constants.WRAPPER) Wrapper<T> queryWrapper);
@Autowired
private UserMapper userMapper;
@Test
void test() {
LambdaQueryWrapper<User> queryWrapper = new LambdaQueryWrapper<>();
//查询年龄大于20的数据
queryWrapper.gt(User::getAge, 20);
List<User> users = userMapper.selectList(queryWrapper);
users.forEach(System.out::println);
}
返回值为对应的实体类集合
Integer selectCount(@Param(Constants.WRAPPER) Wrapper<T> queryWrapper);
@Autowired
private UserMapper userMapper;
@Test
void test() {
//条件为null则查询所有
Long l = userMapper.selectCount(null);
System.out.println("l = " + l);
}
返回值为总记录数