先来看看插入用户的操作,在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
然后来看看MyBatisPlus中的更新操作。
/**
* 更新用户信息
*/
@Test
void updateUser() {
User user = new User(6l, "zs", 20, "123@qq.com");
int i = userMapper.updateById(user);
}
删除用户的方法在MyBatisPLUS中提供的有多个
@Test
void deleteUser() {
User user = new User(6l, "zs", 20, "123@qq.com");
userMapper.deleteById(6l);
}
MyBatisPlus中也支持批量删除的操作
/**
* 批量删除
*/
@Test
void deleteBathUser() {
int i = userMapper.deleteBatchIds(Arrays.asList(1l, 2l, 3l, 4l));
System.out.println("受影响的行数:" + i);
}
根据 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);
}
首先我们可以根据id来查询单条记录
@Test
void queryUserById() {
User user = userMapper.selectById(1l);
System.out.println(user);
}
然后也可以通过类似于SQL语句中的in关键字来实现多id的查询
@Test
void queryUserByBatchId() {
List<User> users = userMapper.selectBatchIds(Arrays.asList(1l, 2l, 3l));
users.forEach(System.out::println);
}
也可以把需要查询的字段条件封装到一个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);
}
也可以通过selectList方法来查询所有的数据
/**
* 查询用户信息
*/
@Test
void queryUser() {
List<User> users = userMapper.selectList(null);
for (User user : users) {
System.out.println(user);
}
}
当然在selectList中需要我们传递进去一个Wrapper对象,这个是一个条件构造器,这个在后面会详细的讲解。
官网地址:https://baomidou.com/pages/49cc81/#service-crud-%E6%8E%A5%E5%8F%A3
官网说明:
在MyBatis-Plus中有一个接口 IService和其实现类 ServiceImpl,封装了常见的业务层逻辑
要使用CRUD的接口,那么我们自定义的Service接口需要继承IService接口。
/**
* User对应的Service接口
* 要使用MyBatisPlus的Service完成CRUD操作,得继承IService
*/
public interface IUserService extends IService<User> {
}
对应的Service实现得继承ServiceImpl同时指定mapper和实体对象。
/**
* Service的实现类
* 必须继承ServiceImpl 并且在泛型中指定 对应的Mapper和实体对象
*/
@Service
public class UserService extends ServiceImpl<UserMapper, User> implements IUserService {
}
通过Service中提供的count方法可以查询总的记录数。get方法,List方法等
@Autowired
private IUserService userService;
@Test
void getUserCount() {
long count = userService.count();
System.out.println("count = " + count);
}
在service中给我们提供了批量插入的方法
@Test
void saveBatchUser() {
List<User> list = new ArrayList<>();
for (int i = 0; i < 10; i++) {
User user = new User(null,"a"+i,10+i,"aaa@163.com");
list.add(user);
}
// 批量插入
userService.saveBatch(list);
// batchSize:50
// userService.saveBatch(list,50);
}
还有saveOrUpdate等方法,可自行应用。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。