MyBatis-Plus的插件概述

Mybatis的插件就是对Exceutor、StatementHandler、ParameterHandler、ResultSetHandler这四个接口上的方法进行拦截,利用JDK的动态代理对象的方法,从而执行自己编写的拦截逻辑。

Exceutor:MyBatis的内部执行器,它负责调用StatementHandler操作数据库,并把结果集通过ResultSetHandler进行自动映射

StatementHandler:MyBatis直接让数据库执行sql脚本的对象

ParameterHandler:MyBatis实现sql入参设置的对象

ResultSetHandler:Mybatis把ResultSet集合映射成POJO的接口对象

MyBatis-Plus的常用插件:

MyBatis-Plus依据MaBaties插件机制,为我们提供了一些开发中常用插件

分页插件:Paginationlnnerinterceptor

防止全表更新与删除:BlockAttackinnerinterceptor

乐观锁:OptimisticLockerInnerInterceptor

这些插件都实现了InnerInterceptor接口

插件注册(在启动类里面、或者配置类里面0):

public class Springdemo8Application {
    public static void main(String[] args) {
        SpringApplication.run(Springdemo8Application.class, args);
    }

    @Bean
    public MybatisPlusInterceptor mybatisPlusInterceptor(){
        MybatisPlusInterceptor interceptor=new MybatisPlusInterceptor();
        //分页插件
        interceptor.addInnerInterceptor(new PaginationInnerInterceptor(DbType.MYSQL));
        //防止全表更新与删除插件
        interceptor.addInnerInterceptor(new BlockAttackInnerInterceptor());
        return interceptor;
    }

}


乐观锁插件:

修改数据库的数据时,为了防止同时被其他人修改数据,最好的办法就是对该数据加锁,以防止并发。锁的设计分为乐观锁和悲观锁:

悲观锁:悲观锁的设计对数据是否被外界持悲观态度,就是默认数据会被修改,所以在整个数据处理的过程中,数据都会处于锁定的状态。悲观锁的实现依靠数据库提供的锁机制

乐观锁:乐观锁的设计对数据是否被修改持乐观态度,在操作数据的过程中没有加锁,别的用户也可以操作数据,但是乐观锁在数据进行提交更新的时候,才会正式对数据的冲突与否进行检测,如果冲突,则返回给用户异常信息

乐观锁插件实现方式:

1.取出记录时,获取当前的version

2.更新时,带上这个version

3.执行更新时,set version = newVersion where version = oldVersion

4.如果version不对就更新失败

注册乐观锁插件

1.interceptor.addInnerInterceptor(new OptimisticLockerInnerInterceptor());
2.修改实体类,添加version属性,并在该属性上增加@Version注解,同时在表中也添加version字段

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值