2. MyBatis Plus CRUD 操作
大约 2 分钟
1. CRUD操作
1.插入用户
先来看看插入用户的操作,在MyBatisPlus中给我们提供一个insert()方法来实现。
/**
* 添加用户信息
*/
@Test
void addUser() {
User user = new User(null, "zs", 18, "123@qq.com");
int i = userMapper.insert(user);
System.out.println("i = " + i);
}
插入成功后生成的id是一长串数字:

注意:在MyBatisPlus中插入数据的时候,如果id为空,默认会通过雪花算法来生成id
2.更新用户
然后来看看MyBatisPlus中的更新操作。
/**
* 更新用户信息
*/
@Test
void updateUser() {
User user = new User(6l, "zs", 20, "123@qq.com");
int i = userMapper.updateById(user);
}
3.删除用户
删除用户的方法在MyBatisPLUS中提供的有多个
3.1 根据id删除
@Test
void deleteUser() {
User user = new User(6l, "zs", 20, "123@qq.com");
userMapper.deleteById(6l);
}
3.2 批量删除
MyBatisPlus中也支持批量删除的操作
/**
* 批量删除
*/
@Test
void deleteBathUser() {
int i = userMapper.deleteBatchIds(Arrays.asList(1l, 2l, 3l, 4l));
System.out.println("受影响的行数:" + i);
}
3.3 通过Map删除
根据 columnMap 条件,删除记录
/**
* 根据 columnMap 条件,删除记录
*/
@Test
void deleteMapUser() {
Map<String,Object> map = new HashMap<>();
map.put("age",18);
map.put("name","tom");
int i = userMapper.deleteByMap(map);
System.out.println("受影响的行数:" + i);
}
4.查询操作
4.1 根据id查询
首先我们可以根据id来查询单条记录
@Test
void queryUserById() {
User user = userMapper.selectById(1l);
System.out.println(user);
}
4.2 根据id批量查询
然后也可以通过类似于SQL语句中的in关键字来实现多id的查询
@Test
void queryUserByBatchId() {
List<User> users = userMapper.selectBatchIds(Arrays.asList(1l, 2l, 3l));
users.forEach(System.out::println);
}
4.3 通过Map查询
也可以把需要查询的字段条件封装到一个Map中来查询
@Test
void queryUserByMap() {
Map<String,Object> map = new HashMap<>();
map.put("age",18);
map.put("name","tom");
List<User> users = userMapper.selectByMap(map);
users.forEach(System.out::println);
}
4.4 查询所有数据
也可以通过selectList方法来查询所有的数据
/**
* 查询用户信息
*/
@Test
void queryUser() {
List<User> users = userMapper.selectList(null);
for (User user : users) {
System.out.println(user);
}
}
当然在selectList中需要我们传递进去一个Wrapper对象,这个是一个条件构造器,这个在后面会详细的讲解。