Mybatis plus学习随笔:QueryWrapper条件构造器的使用

一.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的方法

原文地址:https://www.cnblogs.com/omgliyq/p/13844183.html