MybatisPlus 有关查询的操作

MyBatis Plus是一个基于MyBatis的增强工具库,它简化了在使用MyBatis时的开发流程,并提供了更多的便利功能。MyBatis Plus提供了一些常用的功能,比如自动生成SQL、分页插件、通用Mapper等,可以帮助开发人员更快速地进行数据库操作。

1.定义实体类

MyBatis Plus提供了一些常用的功能,比如自动生成SQL。在数据层的接口中,可以帮助我们自动生成 sql 语句,所以实体类的名字,要与数据库中表的名字相同,这样自动生成的 sql 语句才知道查询哪个表

如果定义的实体类的名字与数据库中表名不相同,则可以用注解来解决

在实体类的上方加上该注解,注解里写数据库中的表名,同样也可以匹配

那如果是实体类中定义的属性名与数据库表中的字段名不一致的话,也可以通过注解 解决

在属性上方加上该注解,注解里写数据库表中的字段名,同样也可以匹配

2.定义数据层接口

在数据层接口中,让该接口继承了 BaseMapper<> ,继承这个之后,我们就不用在自己编写 sql 语句了,而是可以直接使用 BookDao 接口调用相应的方法。而BaseMapper<Book> 括号里面的参数,就是我们定义的实体类的名字

别忘记加上注解,把该接口作为Bean 管理起来

3.测试接口方法

在测试类中,注入接口

虽然没有在数据层接口里面写 sql 语句,但是因为接口继承了 BaseMapper<>,所以已经替我们编写好了 sql 语句,直接用注入进来的 bookDao 对象,调用对应的 sql 语句方法

4.分页查询

4.1定义分页查询过滤器

要想进行分页查询,首先要定义一个 MybatisPlus 的过滤器,在过滤器里面,调用

addInnerInterceptor()方法

增加一个分页的过滤器

4.2测试分页功能

定义一个IPage 对象,用来设置每页放多少行数据,从而把数据分成多少页

new Page(2,3);
第一个参数是当前的页码值,第二个参数是每页多少行数据

然后我们可以用 page 对象,调用相应的方法,查询一些详细信息

5. 按条件查询

5.1 查询方式

5.1.1普通查询

定义一个 QueryWrapper 对象,设置该对象满足的条件

查询图书数量小于20的数据

5.1.2 lambda 格式查询

查询图书数量大于20并且在20~40之间的数据

lt 表示<,le表示<=,gt表示>,ge表示>=

5.2 查询投影

select 用于查询指定的字段,groupBy 是分组

查询图书总数量、类型字段,在按类型进行分组

 结果:

5.3 eq匹配

eq匹配经常用于用户登录在,用来匹配数据库表中是否存在我们所输入的条件的数据

比如数据库表中查询名字是笑猫并且类型是童话的数据

5.4 模糊查询

like 表示模糊查询

查询类型是小说或者童话的数据 

likeleft 表示左模糊,也就是百分号在左边,比如 %王,意思是查询所有名字的最后一个字是“王”的数据

likeright 表示右模糊,也就是百分号在右边,比如 笑%,意思是查询所有名字的第一个字是“笑”的数据

5.5 排序

orderBy 表示排序,排序有升序和降序

比如按照 number 升序

6. 查询条件为 null 处理

我们查询图书数量时,可能设置的条件是:number <100、number >20、30< number <80 等等,比如 30< number <80 的条件中有一个上限,一个下限。而 number <100 的条件中只有一个上限,而下限为 null ,所以要对 null 值进行处理

6.1 定义一个查询实体类

让其继承图书实体类,另外再添加一个属性

6.2 测试

假设 number 和 number2 是前端页面中传递过来的图书数量的上限和下限

然后我们在设置条件的时候,先判断传递过来的上限或者下限是否不为空,如果不为空,则执行条件设置。如果为空,则条件作废

7. 实体类中的注解补充

1. 该注解表示这个属性不参与查询,也可以说,当查询数据库表时,该属性对应的字段不参与查询,在返回的结果中,也就没有该字段的值

2. 该注解表示数据库表中不存在该字段,也就是该属性是编程人员自己定义的,在数据库表中没有

8.依赖和配置

一定要在pom.xml 文件中添加 MybatisPlus 的依赖

在配置中定义数据源

8.整体架构

  • 7
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

托马斯家的

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值