静态工具

有些时候Service之间会存在相互调用,为了避免出现循环依赖的问题,MybatisPlus提供了静态工具类。使用静态调用的方式,执行CRUD方法,避免Spring环境下Service循环注入、简洁代码,提升效率

Drawing
Db 类

示例:

@SpringBootTest
public class ApplicationTest {
    @Test
    void getUserByIdTest() {
        User user = Db.getById(1L, User.class);
        System.out.println(user);
    }

    @Test
    void testDbList() {
        // 利用Db实现复杂条件查询
        List<User> list = Db.lambdaQuery(User.class)
                .like(User::getUsername, "o")
                .ge(User::getBalance, 1000)
                .list();
        list.forEach(System.out::println);
    }
}

例如:查询用户信息,并查询用户的地址信息。

@Override
public List<UserVo> getAllUser() {
    // 查询用户信息
    List<User> users = list();
    // 查询用户地址
    List<Address> addresses = Db.lambdaQuery(Address.class).list();
    // 转换为 AddressVo
    addresses = BeanUtil.copyToList(addresses, Address.class);
    // 根据用户id将地址信息分组
    Map<Integer, List<Address>> collect = addresses.stream().collect(Collectors.groupingBy(Address::getUserId));
    // 定义一个用户信息列表
    List<UserVo> userVos = new ArrayList<>(users.size());
    // 将地址信息添加到用户信息中
    for (User user : users) {
        UserVo userVo = BeanUtil.copyProperties(user, UserVo.class);
        userVo.setAddress(collect.get(user.getId()));
        userVos.add(userVo);
    }
    return userVos;
}

最后更新于

这有帮助吗?