静态工具
有些时候Service之间会存在相互调用,为了避免出现循环依赖的问题,MybatisPlus提供了静态工具类。使用静态调用的方式,执行CRUD方法,避免Spring
环境下Service
循环注入、简洁代码,提升效率
示例:
@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;
}
最后更新于
这有帮助吗?