实现乐观锁2
乐观锁的具体实现:
1.表添加字段,作为乐观锁版本号。
2.对应实体类添加版本号属性
先要去添加版本号属性。
第二步:在实体类版本号属性添加注解
然后我们去配置乐观锁插件:
我们可以把插件配置在启动类上,但是我们标准写法还是把这些东西单独写到一个我们新创建的配置类上,然后再在启动类上去加载配置类:
我们把启动类中的东西都配置到我们的配置类中去。
然后这段插件的代码是不需要我们去记忆的,直接在官网去查找就可以了。
我们现在给我们的版本号添加自动填充:
我们去给它一个默认值:
现在我们插件配置完毕,我们去使用一下它,先去添加数据,再去修改,看看是否修改后版本号自增:
我们再去进行修改操作:
我们根据id查找后其他数据保持不变,只改变更改的属性。
测试:
我们发现我们修改后,版本号自动自增了。
实现分页
mp简单查询:
1.根据Id查询:
我们还有两种查询用的比较少一点:
2.通过多个id批量查询:
测试:
还有一种简单的条件查询,我们基本用不到,就是利用map封装查询,这个了解即可:
我们这种方式是按照name为jone并且年龄是18岁为条件,借助map去查询:
现在我们要说一个分页查询,这个在以后项目中使用的最多:
第一步配置分页插件:这个也不需要自己去记的,用到时候去查找就可以了:
我们还是在配置类中去添加:
第二步 编写分页代码
直接new page对象,传入两个参数:当前页和每页显示记录数
调用mp方法实现分页查询
我们这里到的第二个参数Wrapper是用来传入分页的条件的,这里我们先不去添加条件,我们以后用到会再去学习,这里就先不加任何条件。
测试:
实现逻辑删除
我们物理删除是真真正正的删除数据,但是我们的逻辑删除是一个判断的状态,0和1去标识
我们的逻辑删除不是真正删除数据,而是被删除了就不显示。在实际开发中使用的比物理删除要频繁一些。
我们先来研究物理删除:
这个应该不复杂,直接调用方法就行了。
我们测试后第一行数据应该就被删除了:
2.批量删除
测试后:
用这种方式可以一次性删除多条数据。
接下来到我们重点去说的逻辑删除:
第一步 表添加逻辑删除字段,对应实体类添加属性
实体类中逻辑删除使用TableLogic注解。
第二步 配置逻辑删除插件:
高版本的mybatisplus应该不需要配置这个。我们先往下走试试看:
我们这两个配置如果不写,默认也是一样的效果0是未删除,1是删除。
但是这个配置我们写了,我们可以自己更改删除与否的状态。
现在我们配置完了,我们去测试一下,我们先加一条记录:
可以看到新增的数据,它的删除状态就是0.
我们现在来实现逻辑删除:
我们就是把id值改成我们岳不群的id值,我们还是普通的物理删除,测试结果:
我们发现确实岳不群的删除状态为1了,我们也知道了在版本比较高的mybatisplus中,做逻辑删除是不需要在配置类中做配置的。
但是怎么证明它是被删除了呢?那么我们再去调用一下查询语句:
我们确实只查到了6条数据,而且我们确实看到了添加了一个条件where deleted=0
但是存在这样一个问题,可能说我们会想到如果我们想查看我们移到回收站里的数据怎么办呢?
这个问题确实只是靠mybatisplus是完成不了的,我们必须借助之前学过的mybatis的方式自己写sql语句的xml文件来实现,所以也并不是说我们只要学了MybatisPlus就不再用Mybatis了,毕竟mybatisplus只能去做一些简单的sql语句,如果说我们的sql语句逻辑过于复杂,或者说一些多表联查的情况,我们还是得必须自己手写sql语句的。
性能分析插件
这部分内容在配置类中的配置已经被高版本的mybatisplus给移除了,所以也没有办法去按照视频来学习了。先搁置在这,大家有好的办法可以评论教教我。
实现条件查询
mp实现复杂条件查询:
我们这里使用QueryWapper类。
我们要创建QueryWrapper对象,调用方法实现各种条件查询
数据库表:
(1)查询age>=30的记录:
其它方法gt等同理。
接下来的方法创建wrapper对象,我就不再一一写了,只截图方法部分。
(2) 查询李雷的所有信息:
(3)查找李雷以外成员的信息:
(4)查询年龄20-30
(5)查询名称中含有字母l的人员的信息 :
(6)根据id升序:
(7)只查询一条数据:
(8)查找指定的列
我们的mybatis-plus快速上手到这里就结束了,这两篇就是能快速的去使用mybatis-plus。如果大家有足够的时间可以自己再去网上找其它视频学习。