//1、查询
//1.1、根据id查询
User user = userMapper.selectById(1L);
System.out.println("userMapper.selectById=" + user);
//1.2、自定义条件查询
LambdaQueryWrapper<User> lambdaQueryWrapper = Wrappers.lambdaQuery(User.class).eq(User::getId, 1L);
User user1 = userMapper.selectOne(lambdaQueryWrapper);
System.out.println("userMapper.selectOne=" + user1);
User user2 = userService.getOne(lambdaQueryWrapper);
System.out.println("userService.getOne=" + user2);
//1.3、列表查询
LambdaQueryWrapper<User> lambdaQueryWrapper2 = Wrappers.lambdaQuery(User.class).eq(User::getName, "测试");
List<User> userList1 = userMapper.selectList(lambdaQueryWrapper2);
System.out.println("userMapper.selectList=" + userList1);
List<User> userList2 = userService.list(lambdaQueryWrapper2);
System.out.println("userService.list=" + userList2);
//1.4、多条件查询:SELECT id, version, name, age, email, create_time, update_time, deleted FROM user
// WHERE deleted = 'N'
// AND (id > ?
// AND (name = ? OR (age = ? AND id = ?))
// AND id < ?
// ) AND tenant = 'fivestar'
//列表查询
LambdaQueryWrapper<User> lambdaQueryWrapper3 = Wrappers.lambdaQuery(User.class)
.gt(User::getId,1L)
.and(userLambdaQueryWrapper -> {
userLambdaQueryWrapper.eq(User::getName, "测试");
userLambdaQueryWrapper.or(userLambdaQueryWrapper1 -> {
userLambdaQueryWrapper1
.eq(User::getAge, 28)
.eq(User::getId, 2L);
});
})
.lt(User::getId,100L);
List<User> userList3 = userMapper.selectList(lambdaQueryWrapper3);
//2、更新
//2.1、通过mapper更新
User user = new User();
user.setName("韦 昌 龙-代码修改时间");
user.setAge(16);
LambdaUpdateWrapper<User> lambdaUpdateWrapper = lambdaUpdate(User.class).eq(User::getId, 6L);
int i = userMapper.update(user, lambdaUpdateWrapper);
System.out.println("受影响的行数:" + i);
//2.2、通过service更新(底层调用的mapper方法)
// 不会 更新更新人、更新时间
this.lambdaUpdate().set(User::getAge,17L)
.eq(User::getId, 6L)
.update();
// 不会 更新更新人、更新时间
LambdaUpdateWrapper<User> lambdaUpdateWrapper2 = this.lambdaUpdate(User.class)
.set(User::getAge,17L)
.eq(User::getId, 6L);
Boolean flag = userService.update(lambdaUpdateWrapper2);
// 会 更新更新人、更新时间
this.update(new Xm(), Wrappers.lambdaUpdate(Xm.class)
.set(Xm::getStatus, StatusEnum.STATE_EXECUTE.getCode())
.set(Xm::getCancelFlag, cancelFlag)
.in(Xm::getId, idList));
// 会 更新更新人、更新时间
Xm xmUpdate = new Xm();
xmUpdate.setStatus(StatusEnum.STATE_EXECUTE.getCode());
xmUpdate.setCancelFlag(cancelFlag);
this.update(xmUpdate, Wrappers.lambdaQuery(Xm.class).in(Xm::getId, idList));
//3、删除
LambdaQueryWrapper<User> lambdaQueryWrapper = Wrappers.lambdaQuery(User.class).eq(User::getId, 6L);
userMapper.delete(lambdaQueryWrapper);
Mybatis的优雅写法
于 2023-02-16 14:45:30 首次发布
本文展示了如何在Java中利用MyBatisPlus库进行CRUD操作,包括根据ID查询用户、自定义条件查询、列表查询、多条件查询、更新用户信息以及删除用户。示例中使用了lambda表达式和LambdaQueryWrapper进行条件构造。
3万+

被折叠的 条评论
为什么被折叠?



