Mybatis-plus条件构造器Wrapper/QueryWrapper/LambdaQueryWrapper/LambdaQueryChainWrapper关系梳理和用法
各个类UML关系图如下,都是继承自Wrapper
各个构造器使用区别
QueryWrapper
、QueryChainWrapper
只能指定需要的数据库列名LambdaQueryWrapper
、LambdaQueryChainWrapper
可以通过Lambda获取数据库列名QueryWrapper
、LambdaQueryWrapper
不能使用链式查询的方式,必须借助BaseMapper来执行QueryChainWrapper
、LambdaQueryChainWrapper
可以使用链式查询的方式,如list(),one()
使用案例
QueryWrapper
queryWrapper.like("email", "hexuan.cat@gmail.com"); //email对应数据库中列名
List<User> list = userMapper.selectList(queryWrapper);
LambdaQueryWrapper
lambdaQueryWrapper.eq(User::getName,"cat"); //可以通过Lambda获取数据库列名
List<User> list = userMapper.selectList(lambdaQueryWrapper);
QueryChainWrapper
//链式查询方式
List<User> list = new QueryChainWrapper<>(userMapper)
.like("name", "cat")
.list();
LambdaQueryChainWrapper
//链式查询方式
User one = new LambdaQueryChainWrapper<>(userMapper)
.eq(User::getName, "cat")
.one();
常用方法
条件构造器常用方法参考官方文档