您的位置:首页 > 其它

MyBatisPlus之模糊查询加分页和条件构造器

2019-05-09 11:24 666 查看

一、模糊查询和分页

前言:前面有一篇文章已经讲过mybatisplus的入门,不会的可以先去看看。这里直接讲怎么进行分页查询。
1、在mapper层写方法

List<Subject> findAllMenu1(Page subjectPage,Subject subject);

Page直接导入mybatisplus中的包
2、mapper.xml

<select id="findAllMenu1" resultType="com.sinotrans.expense.entity.Subject">
SELECT id,subject,parentId,typeId  FROM subject
<if test="subject!=null">
where subject like CONCAT('%',#{subject.subject},'%')
</if>

3.测试类,这里直接测试mapper层的方法

@Test
public void addSubject1() {
Page<Subject> subjectPage=new Page();
subjectPage.setCurrent(1);   //当前页
subjectPage.setSize(10);     //每页数量
Subject subject=new Subject();
subject.setSubject("收入");
List<Subject> allMenu1 = subjectMapper.findAllMenu1(subjectPage,subject);
System.out.println(allMenu1);
}

这样就可以查询出模糊查询为“收入”的10条数据了,如果是查询所有,直接setSubject("")就可以了。

二、条件构造器

1、mybatisplus的条件构造器就是可以简写各种条件语句,
例如: eq的意思是“等于”,eq(“name”,“老王”)就相当于name=‘老王’
ge的意思是“大于或等于”,ge(“age”,18)就相当于age>=18

2、wapper介绍 :
Wrapper : 条件构造抽象类,最顶端父类,抽象类中提供4个方法
AbstractWrapper : 用于查询条件封装,生成 sql 的 where 条件
AbstractLambdaWrapper : Lambda 语法使用 Wrapper统一处理解析 lambda 获取 column。
LambdaQueryWrapper : 看名称也能明白就是用于Lambda语法使用的查询Wrapper
LambdaUpdateWrapper : Lambda 更新封装Wrapper
QueryWrapper : Entity 对象封装操作类,不是用lambda语法
UpdateWrapper : Update 条件封装,用于Entity对象更新操作

3、测试

@Test
public void addSubject1() {
QueryWrapper<Subject> queryWrapper = new QueryWrapper<>();
queryWrapper.ge("id",80);
List<Subject> allMenu = subjectMapper.findAllMenu(queryWrapper);
System.out.println(allMenu);
}

这样我就可以查出id>=80的subject了。
eg:
allEq({id:1,name:“老王”,age:null})—>id = 1 and name = ‘老王’ and age is null
allEq({id:1,name:“老王”,age:null}, false)—>id = 1 and name = ‘老王’
gt(“age”, 18)—>age > 18
等等等还有很多
更多请看官方文档:mybatisplus条件构造器

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: