(傲娇的白狐)Mybatis-plus乐观锁 条件构造器wrapper

Mybatis-plus乐观锁 条件构造器wrapper

1.条件构造器wrapper

- 平时直接获取数据库的所有数据 是 userceshimapper.selectList(null);

wapper 写为空值 现在可以对 wapper 进行操作 来实现各种复杂的 查询条件

列:// 查询不为空的 摸条件大于的 update_time不空 version 等于2
QueryWrapper<Userceshi> que=new QueryWrapper();

que.isNotNull("update_time") //查询条件为 某某不为空
.ge("id",2); // 条件为 某某大于等于 多少

List<Userceshi> list = userceshimapper.selectList(que);
// 输出
list.forEach(
System.out::println

);

-------- 某数多少之间
// 查询 某个属性 在 多少之间的

wrapper.between("id",2,4);
List<Userceshi> list = userceshimapper.selectList(wrapper);

---------- 模糊查询
wrapper.notLike("name","1")
.likeRight("name","洛")
;
// selectMaps 用于 wrapper 模糊查询 一般是 selectByMap 用于 hasmap
List<Map<String, Object>> maps = userceshimapper.selectMaps(wrapper);

---------- 插入sql语句 条件加上 筛选自己所写的查询语句的结果
// 插入SQL语句 此时 条件就变为 and id in (自己所写的查询语句的结果)
wrapper.inSql("id","select id from userceshi where id < 3 ");

List<Object> objects = userceshimapper.selectObjs(wrapper);

例:

 

//

 

 


        //  插入SQL语句    此时 条件就变为 and id in (自己所写的查询语句的结果)
        wrapper.inSql("id","select id from userceshi where id < 3 ");

 

 

--------- 筛选

// 根据所填条件 进行排序
wrapper.orderByAsc("version");

2.乐观锁

乐观锁
顾名思义 是非常乐观的,他总是认为不会出现问题,无论干什么不去上锁!如果出了问题
再次更新测试
悲观锁
顾名思义 是非常悲观的

如果没有乐观锁 ,那么插队进入的数据将会被覆盖

首先确定 表中有version int 字段 每次执行操作都会加上 条件 version=1 也就是上一次操作时 version的值。

已修改为例:
首先 在实体类里 的version变量上方 加上
@Version
private int version;

新建一个 config类 用于注释 乐观类

@EnableTransactionManagement //自动管理事务
@MapperScan("com.example.demo.mapper") //扫描包 个人习惯 用于扫描作用mybatis-plus
@Configuration// 配置类类
public class Myversion {
// 乐观锁
@Bean
public OptimisticLockerInterceptor optimisticLockerInterceptor() {
return new OptimisticLockerInterceptor();
}
}

----------- 运行
当有其他方法插队调用同一个对象时,乐观锁就会启动
认为不出错,如果没有乐观锁,默认插队进入的就会被覆盖
Userceshi user = userceshimapper.selectById(1); //虽然原有方法先实例化,但被插队。他人先执行
user.setName("洛洛11");
Userceshi user1 = userceshimapper.selectById(1);
user.setName("洛洛22");

userceshimapper.updateById(user1); //插入者先执行,没有乐观锁就会被覆盖

userceshimapper.updateById(user); //原有后执行

 

posted @ 2020-07-19 15:09  傲娇的白狐  阅读(231)  评论(0)    收藏  举报