Mybatis plus学习随笔:QueryWrapper条件构造器的使用
-
mybatis plus官方文档:https://mp.baomidou.com/guide/
一.mybatis plus中实现查询的对象封装操作类
mybatis-plus提供了Wapper抽象类,提供了很多sql语法支持的方法,比如模糊查询,比较,区间,分组查询,排序,判断空,子查询等等,方便我们用面向对象的方式去实现sql语句
Wrapper : 条件构造抽象类,最顶端父类,抽象类中提供4个方法
AbstractWrapper : 用于查询条件封装,生成 sql 的 where 条件,QueryWrapper(LambdaQueryWrapper) 和 UpdateWrapper(LambdaUpdateWrapper) 的父类。
AbstractLambdaWrapper : Lambda 语法使用 Wrapper统一处理解析 lambda 获取 column。
LambdaQueryWrapper :看名称也能明白就是用于Lambda语法使用的查询Wrapper
LambdaUpdateWrapper : Lambda 更新封装Wrapper
QueryWrapper : Entity 对象封装操作类,不适用lambda语法
UpdateWrapper : Update 条件封装,用于Entity对象更新操作
二.使用Demo
/** * 查找USERID为1、USERNAME为“小明”的实体User对象 * sql: select * from User where USERID = 1 and USERNAME = '小明' */
QueryWrapper<User> queryWrapper = new QueryWrapper<>(); queryWrapper.eq("USERID", 1); queryWrapper.eq("USERNAME", 1); List<User> User= baseMapper.selectOne(queryWrapper );
上面这段代码的意思就是,首先新建一个QueryWrapper对象,类型为User对象,也就是你需要查询的实体数据,
下面就是拼条件:
queryWrapper.eq("USERID", 1); //where USERID = 1
queryWrapper.eq("USERNAME", "小明"); // AND USERNAME = '小明'
这两句的意思是User对象对应的数据库表中的USERID为1,USERNAME字段值要为"小明",eq为wrapper方法中的等于=,
然后调用baseMapper.selectOne方法,入参就为前面新建好的查询对象封装类
当你的Mapper 继承BaseMapper接口(BaseMapper学习入口)后,无需编写 mapper.xml 文件,即可获得CRUD功能这样mybatis plus底层封装的方法即可实现帮你查询你设置查询条件查询到的数据
三.QueryWrapper的方法