前言
在上节中我们介绍了MyBatis-plus
的一些常用查询,感兴趣的可参考以下文章
SpringBoot(40) — SpringBoot整合MyBatis-plus
SpringBoot(41) — MyBatis-plus常用查询
SpringBoot(42) — MyBatis-plus查询数据表中一列数据的部分字段
今天,让我们学习下一些有特点的查询。
今天涉及知识点有:
- 准备工作
- 特殊查询
2.1 查询条件参数 condition
2.2 数据实体作为查询条件
2.3 allEq 的使用
2.4 selectMaps的使用
2.5 selectCount,符合条件总记录数
2.6 selectOne 的使用 - lambda条件构造器
3.1 java和lambda不同写法
3.2 lambda写法好处
3.3 lambda更为简洁的写法
一. 准备工作
MyBatis-plus
在SpringBoot
中的集成之前已经讲过了,大家如果有需要了解的,可参看本文前言
中该文链接,这里不再赘述。本文讲述的MyBatis-plus
查询相关知识主要涉及到数据表映射实体类Student
,然后是继承BaseMapper
实现的数据表操作类StudentMapper
。
先给出数据库test_pro
中demo
表的数据:
我是用
mysql
数据库测试的,所以还要开启mysql
数据库服务。接着给出
Student
类代码:
/**
* Title:
* description:
* autor:pei
* created on 2019/9/3
*/
@Data
@Component("Student")
@TableName(value = "demo")
public class Student {
//主键自增
@TableId(value = "id",type = IdType.AUTO)
private int id;
@TableField(value = "name") //表属性
private String name;
@TableField(value = "age") //表属性
private int age;
}
最后给出数据表操作类StudentMapper
代码:
/**
* Title:
* description:
* autor:pei
* created on 2019/9/3
*/
@Repository
public interface StudentMapper extends BaseMapper<Student> {
}
这样,查询前的准备工作就做好了。
二. 特殊查询
2.1 查询条件参数 condition
当我们在进行条件查询时,经常灰用到条件关键字,如like
,lt
,ge
等。以like
为例,当我们要查询数据表中name
包含某个字符串,但又要排除该字符串是否为空时,我们查询逻辑一般这样写: