本文默认大家都已熟悉MyBatis Plus基本操作,不赘述。
MyBatis Plus 使用起来已然十分方便,但对于一个动态条件查询来说,我们如果不想书写xml,就可能写出如下代码:
@PostMapping("/list")
public Object list(@RequestBody UserVO user) {
LambdaQueryChainWrapper lqcw = new LambdaQueryChainWrapper<>(userService.getBaseMapper());
// 拼接动态条件
if(user != null){
if(user.getId() != null) {
lqcw = lqcw.eq(UserVO::getId, user.getId());
}
if(user.getUserName() != null) {
lqcw = lqcw.likeLeft(UserVO::getUserName, user.getUserName());
}
......
}
return userService.list(lqcw);
}
看起来依然是十分啰嗦,于是,我们来简单封装一个工具类,根据传入的对象,不为空的字段,就动态拼接查询条件。
首先,我们需要知道字段和条件之间的对应关系,比如,对于 username字段,要使用 eq, 还是 like呢
这个我们可以用一个注解来映射他们的关系:
<


