SpringBoot(43) — MyBatis-plus一些特殊查询

前言

在上节中我们介绍了MyBatis-plus的一些常用查询,感兴趣的可参考以下文章
SpringBoot(40) — SpringBoot整合MyBatis-plus
SpringBoot(41) — MyBatis-plus常用查询
SpringBoot(42) — MyBatis-plus查询数据表中一列数据的部分字段
今天,让我们学习下一些有特点的查询。
今天涉及知识点有:

  1. 准备工作
  2. 特殊查询
    2.1 查询条件参数 condition
    2.2 数据实体作为查询条件
    2.3 allEq 的使用
    2.4 selectMaps的使用
    2.5 selectCount,符合条件总记录数
    2.6 selectOne 的使用
  3. lambda条件构造器
    3.1 java和lambda不同写法
    3.2 lambda写法好处
    3.3 lambda更为简洁的写法

一. 准备工作

MyBatis-plusSpringBoot中的集成之前已经讲过了,大家如果有需要了解的,可参看本文前言中该文链接,这里不再赘述。本文讲述的MyBatis-plus查询相关知识主要涉及到数据表映射实体类Student,然后是继承BaseMapper实现的数据表操作类StudentMapper
先给出数据库test_prodemo表的数据:

image.png

我是用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包含某个字符串,但又要排除该字符串是否为空时,我们查询逻辑一般这样写:

还有 80% 的精彩内容
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。
支付 ¥4.00 继续阅读

推荐阅读更多精彩内容

友情链接更多精彩内容