首先奉上mybatis plus的官方文档链接,再看本博客有不清晰的地方,可以查看文档-MyBatis-Plus
一、queryWrapper是什么
queryWrapper是mybatis plus中实现查询的对象封装操作类,他的层级关系如下
在上面的图片中,
Wrapper : 条件构造抽象类,最顶端父类,抽象类中提供4个方法西面贴源码展示
AbstractWrapper : 用于查询条件封装,生成 sql 的 where 条件
AbstractLambdaWrapper : Lambda 语法使用 Wrapper统一处理解析 lambda 获取 column。
LambdaQueryWrapper :看名称也能明白就是用于Lambda语法使用的查询Wrapper
LambdaUpdateWrapper : Lambda 更新封装Wrapper
QueryWrapper : Entity 对象封装操作类,不是用lambda语法
UpdateWrapper : Update 条件封装,用于Entity对象更新操作
二、使用demo
使用的关键的代码
QueryWrapper<PbListBlack> sectionQueryWrapper = new QueryWrapper<>();
sectionQueryWrapper.eq("OPTYPE", 1);
sectionQueryWrapper.eq("BLTYPE", 1);
List<PbListBlack> pbListBlacks = iPbListBlackMapper.selectList(sectionQueryWrapper);
上面这段代码的意思就是,首先新建一个QueryWrapper对象,类型为PbListBlack对象,也就是你需要查询的实体数据,
sectionQueryWrapper.eq("OPTYPE", 1);
sectionQueryWrapper.eq("BLTYPE", 1);
这两句的意思是PbListBlack对象对应的数据库表中的OPTYPE,BLTYPE字段值要为1
然后调用iPbListBlackMapper.selectList方法,入参就为前面新建好的查询对象封装类
也可以使用Java8中的::
LambdaQueryWrapper<Busmanager> queryWrapper = new LambdaQueryWrapper<>();
queryWrapper.eq(Busmanager::getState, 0);
queryWrapper.eq(Busmanager::getSmsType, 1);
List<Busmanager> list = busmanagerService.list(queryWrapper);