5.Mp-04-分页操作
current代表查询第几页,size代表每页多少条。
Mp有分页拦截器,可以实现查询一共多少页,以及一共多少条数据。该分页拦截器是一个bean。所以创建一个config.Mpconfig。拦截器可以加多个。
抽象类不能直接用,我们使用的是抽象类的实现类。
<是小于
>是大于
5.Mp-05-条件查询的三种格式
6.Mp-06-条件查询的null值判定
如果条件只涉及一部分。比如价格、日期等属性。
7.Mp-07-查询投影。
查询投影,对于lamda格式的,只能列出实体类的属性名。除了列举字段的属性名,我们只能用QueryMapper(比如求总共有多少条数据count)。
如果函数不支持Mp,恢复到最早的Mybatis,在数据接口层Dao中,继续用@select,下面添加sql语句。
分组统计要用到查询投影。
8.Mp-08-查询条件设置。
(1)等匹配用的比较多,比如用户登陆操作,记得做加密处理(md5)
(2)范围查询,比如价格
9.Mp-09-映射匹配兼容性
10.Mp-10-id生成策略
11.Mp-11-多数据操作(删除与查询)
(1)多记录操作
前提是要提供多条数据的ID
12.Mp-12-逻辑删除
比如有两张数据表,一张是员工表,一张是员工业绩表,通过员工的id关联,如果该员工离职,首先员工表的数据要被删除,对应的员工业绩表则成了垃圾数据,也要删除。但是这样容易造成该员工的业绩信息丢失。更合理的做法是添加一个标记字段deleted,所以数据库和实体类中都要添加这个字段。(0代表不删除,1代表删除)
如果要省略@TableLogic,可以去application.yml去进行全局配置。
通过Mp的api删除,是看不到被删除的数据,如果此时还想看到全数据(包括deleted=0以及deleted=1,就去Dao层写SQL语句。)
13.Mp-13-乐观锁
解决并发问题(秒杀业务),本质是修改操作
场景:八个人去抢最后的一个商品,会出现-1,-2,-3…
在数据库中添加一个字段,来标记当前谁在操作这条数据(变量名:version,类型:int)
为了确保每个人拿到的锁(version)不一样,我们可以用version=version+1
@version
update set_abc=1,version=version+1 where version=1;
//类似分页拦截器,select * from tbl_user limit 5,5
14.Mp-14代码生成器