MyBatisPlus插件扩展_SqlExplainInterceptor执行分析插件的使用

场景

项目搭建专栏:

https://blog.csdn.net/BADAO_LIUMANG_QIZHI/column/info/37194

简介

SQL 执行分析拦截器【 目前只支持 MYSQL-5.6.3 以上版本 】,

作用是分析 处理 DELETE UPDATE 语句, 防止小白或者恶意 delete update 全表操作!

com.baomidou.mybatisplus.plugins.SqlExplainInterceptor

参数:stopProceed 发现执行全表 delete update 语句是否停止执行

注意!该插件只用于开发环境,不建议生产环境使用。。。

原理

在插件的底层,通过SQL语句分析命令:Explain分析当前SQL语句,根据结果集中的Extra列来判定当前是否全局操作。

实现

来到项目下的applicationContext.xml中配置sqlSessionFactoryBean的地方。

<!--  配置SqlSessionFactoryBean
  Mybatis提供的: org.mybatis.spring.SqlSessionFactoryBean
  MP提供的:com.baomidou.mybatisplus.spring.MybatisSqlSessionFactoryBean
  -->
 <bean id="sqlSessionFactoryBean" class="com.baomidou.mybatisplus.spring.MybatisSqlSessionFactoryBean">
  <!-- 数据源 -->
  <property name="dataSource" ref="dataSource"></property>
  <property name="configLocation" value="classpath:mybatis-config.xml"></property>
  <!-- 别名处理 -->
  <property name="typeAliasesPackage" value="com.badao.beans"></property> 
  <!-- 注入全局MP策略配置 -->
  <property name="globalConfig" ref="globalConfiguration"></property> 
  <!-- 插件注册 -->
  <property name="plugins">
   <list>
    <!-- 注册分页插件 -->
    <bean class="com.baomidou.mybatisplus.plugins.PaginationInterceptor"></bean>
    <!-- 注册执行分析插件 -->
    <bean class="com.baomidou.mybatisplus.plugins.SqlExplainInterceptor">
     <property name="stopProceed" value="true" />
    </bean>
   </list>
  </property> 
 </bean>

编写测试方法

/***
  * 执行分析插件
  */
 @Test
 public void testExplainPlugin() {
  //不传任何条件 所以是删除全表操作
  employeeMapper.delete(null);
  
 }

运行结果

可以看到提示失败原因是全表操作被拒绝。

源码下载

https://download.csdn.net/download/badao_liumang_qizhi/11147569

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

霸道流氓气质

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值