MyBatis-Plus的使用。

2022-07-11 10:38:59

  Mybatis-Plus的功能十分强大,里面封装了很多方法,比如说CRUD操作,还可以生成代码,简化开发过程,加快开发速度,springboot里面使用Mybati-Plus需要在pom.xml文件里添加依赖mybatis-plus-boot-starter。而且这个依赖包含了MyBatis-Spring,没必要重复添加。

1.BaseMapper

  1.1  通用 CRUD 封装BaseMapper接口,为 Mybatis-Plus 启动时自动解析实体表关系映射转换为 Mybatis 内部对象注入容器。
  1.2 泛型 T 为任意实体对象。
  1.3 参数 Serializable 为任意类型主键 Mybatis-Plus 不推荐使用复合主键约定每一张表都有自己的唯一 id 主键。
  1.4 对象 Wrapper 为 条件构造器。
  下面是方法。
在这里插入图片描述在这里插入图片描述

2. IService

  对CRUD的进一步封装,常用的方法下图。
在这里插入图片描述

3. Page.class

  做分页查询的时候,返回的是一个Page类对象,已经封装好了属性。
在这里插入图片描述

4. 条件构造器

  条件构造器关系介绍如下图
在这里插入图片描述图片来源 https://blog.csdn.net/m0_37034294/article/details/82917234
一般查询的话就选择QueryWrapper就好了。下面是条件参数说明。
在这里插入图片描述
在这里插入图片描述
小例子。

int buyCount = selectCount(Condition.create()
                .setSqlSelect("sum(quantity)")
                .isNull("order_id")
                .eq("user_id", 1)
                .eq("type", 1)
                .in("status", new Integer[]{0, 1})
                .eq("product_id", 1)
                .between("created_time", startDate, currentDate)
                .eq("weal", 1));

第一个为要比较的数,第二个为参数。比如说.eq(“id”,1)就是判断id==1?

5. 分页插件

  物理分页:相当于执行了limit分页语句,返回部分数据。物理分页只返回部分数据占用内存小,能够获取数据库最新的状态,实施性比较强,一般适用于数据量比较大,数据更新比较频繁的场景。
  逻辑分页:一次性把全部的数据取出来,通过程序进行筛选数据。如果数据量大的情况下会消耗大量的内存,由于逻辑分页只需要读取数据库一次,不能获取数据库最新状态,实施性比较差,适用于数据量小,数据稳定的场合。
  这里分页是物理分页,而BaseMapper的selectPage是通过缓存来获得全部数据进行分页,所以数据量大了这种方式也不可取。自定义查询语句分页如果不配置分页插件,默认采用的分页为RowBounds的分页即逻辑分页,也就是把所有的数据都查询出来,然后根据offset和limit截取记录返回。

  • 作者:一刀999丶
  • 原文链接:https://blog.csdn.net/qq_38105288/article/details/94656120
    更新时间:2022-07-11 10:38:59