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截取记录返回。
END
还是要看看源码啊,不然写业务写的一脸懵逼。。。。
To live is to function --xxy专用小尾巴。