SQL 执行分析拦截器【 目前只支持 MYSQL-5.6.3 以上版本 】,作用是分析 处理 DELETE UPDATE 语句, 防止小白或者恶意 delete update 全表操作!

这里我引用MyBatis-Plus官方文档所说的。

为什么需要执行分析插件?

实际开发中,虽然我们可以根据数据库权限分给对应的开发人员,让他们开发或者是同步备份一个生产数据库移植到本地。

但是就小公司而言,没几个会这么弄的,特别是五到六人的小开发团队。基本上,可以说,数据库权限分配或者是本地测试服务器都没有。因为如果那样搞的话,从长远的角度出发,是有利的,

第一、约束开发人员行为,防止因不小心或者是恶意删库删表清空数据;

第二、在内网环境下,有测试服务器好处,在于,速度快,不会因为连接远程导致的网络延迟,同时即便删除了部分数据或者是改动较大也不会影响生产环境下的数据和对应的web应用。

但是呢,可惜大多数小公司很少会这么做,据我了解,我的一个朋友公司规模相对比较大,属于中型公司,他们公司开发团队相对我现在的公司要大的多,但是最近他跟我吐槽说,他们的开发,有的时候为了一些无关紧要的功能进入数据库任意修改字段,要知道,这乃开发大忌,改字段,特别是实体和表字段关联紧密的,一般情况下,改字段多少都会影响实体从而影响业务逻辑,然后Bug就出现了。

所以呢?对于数据库和表方面加强约束是非常有必要的。推荐一个比较好的工具:phpmyadmin。这个工具就可以做到。

但是还有就是针对开发人员不小心测试导致的数据清空或者是数据异常改动,使用MyBatis-Plus作为持久层的小伙伴们可以采取如下策略(声明下,针对MyBatis-Plus2以上版本,3以下版本):

Spring+SpringMVC+MyBatis-Plus(SSM框架开发的),可以如下配置:

在mybatis-config.xml配置如下内容即可:

<plugins>
<!-- SQL 执行分析拦截器 stopProceed 发现全表执行 delete update 是否停止运行 -->
<plugin interceptor="com.baomidou.mybatisplus.plugins.SqlExplainInterceptor">
<property name="stopProceed" value="false" />
</plugin>
</plugins>

注意事项:

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

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

MP实战系列(十五)之执行分析插件的更多相关文章

  1. MP实战系列(十六)之性能分析插件

    性能分析拦截器,用于输出每条 SQL 语句及其执行时间. 虽然使用阿里的Druid连接池可以完成这个目的,但是,我们一般认为,目前的组件能够达到这个目的,尽量使用目前的组件,因为修改配置和引入第三方库 ...

  2. MP实战系列(十四)之分页使用

    MyBatis Plus的分页,有插件式的,也有其自带了,插件需要配置,说麻烦也不是特别麻烦,不过觉得现有的MyBatis Plus足以解决,就懒得配置插件了. MyBatis Plus的资料不算是太 ...

  3. MP实战系列(十二)之封装方法详解(续二)

    继续MP实战系列(十一)之封装方法详解(续一)这篇文章之后. 此次要讲的是关于查询. 查询是用的比较多的,查询很重要,好的查询,加上索引如鱼得水,不好的查询加再多索引也是无济于事. 1.selectB ...

  4. MP实战系列(十)之SpringMVC集成SpringFox+Swagger2

    该示例基于之前的实战系列,如果公司框架是使用JDK7以上及其Spring+MyBatis+SpringMVC/Spring+MyBatis Plus+SpringMVC可直接参考该实例. 不过建议最好 ...

  5. shiro实战系列(十五)之Spring集成Shiro

    Shiro 的 JavaBean 兼容性使得它非常适合通过 Spring XML 或其他基于 Spring 的配置机制.Shiro 应用程序需要一个具 有单例 SecurityManager 实例的应 ...

  6. MP实战系列(十九)之批量新增

    批量操作在实际开发中也应用非常多,例如批量下发优惠券.批量添加用户等. 以MyBatis为例,通常实现批量操作,有这么几种方式? 第一,单条插入sql语句,进行for循环遍历,基准条件是根据前端传过的 ...

  7. MP实战系列(十八)之XML文件热加载

    你还在为每次修改XML文件中的SQL重新启动服务器或者是等待几分钟而烦恼吗? 配置了热加载即可解决你的这个问题. 这就是XML文件热加载的目的,减少等待时间成本,提高开发效率. SSM框架配置(Spr ...

  8. MP实战系列(九)之集成Shiro

    下面示例是在之前的基础上进行的,大家如果有什么不明白的可以参考MP实战系列的前八章 当然,同时也可以参考MyBatis Plus官方教程 建议如果参考如下教程,使用的技术为spring+mybatis ...

  9. MP实战系列(七)之集成springboot

    springboot是现在比较流行的微服使用的框架,springboot本质上就是将spring+springmvc+mybatis零配置化,基本上springboot的默认配置符合我们的开发.当然有 ...

随机推荐

  1. JDBC流程

    最近要学习Mybatis的源码,因此对JDBC的使用进行总结. 一.JDBC概述 JDBC(Java DataBase Connectivity,java数据库连接)是一种用于执行SQL语句的Java ...

  2. putty连接ubuntu:network error:connection refused

    原因: ubuntu存在一个bug:在/var/run/目录下缺少一个文件夹sshd 解决方法: 在命令行输入: sudo mkdir /var/run/sshd sudo /usr/sbin/ssh ...

  3. 3.配置Spring+SpringMvc+Mybatis(分库or读写分离)--Intellij IDAE 2016.3.5

    作者QQ:1095737364    QQ群:123300273     欢迎加入! 建立好maven多模块项目后,开始使用ssm传统的框架:http://www.cnblogs.com/yysbol ...

  4. js-权威指南学习笔记19.2

    1.jQuery动画是异步的,会立刻返回,但动画会在后台执行,可传入函数作为动画完成的回调函数. 2.jQuery动画默认是队列化的. 3.stop()方法接受两个可选的布尔值参数,如果第一个参数是t ...

  5. python邮件发送

    '''qq邮件与其他邮件有所不同,下以我的qq邮件为例(切勿转载):''' import osimport smtplibfrom email.mime.text import MIMEText # ...

  6. 尝试笔记 01 之 CSS 边角上的标签

    作者: 八月未见 博客: https://www.cnblogs.com/jmtm/ 以下内容我仅尝试了Firefox浏览器,其他浏览器效果未知. 尝试做一个 CSS 写的角标,因为不能把它移到角落去 ...

  7. 除虫记之C#调用C函数出现的诡异错误

     作者:朱金灿 来源:http://blog.csdn.net/clever101 同事反映在在项目中使用C#程序调用我们部门编写的C++模块出现一个诡异错误:在调用A算法失败后,其它算法均不能调 ...

  8. terminate called after throwing an instance of 'std::bad_alloc'

    这个错误,网上搜索到的资料大多是指向内存不足或者内存碎片问题,如下链接 http://bbs.csdn.net/topics/330000462 http://stackoverflow.com/qu ...

  9. Android性能优化系列之APK终极瘦身策略

    第1条:使用一套资源 这是最基本的一条规则,但非常重要. 对于绝大对数APP来说,只需要取一套设计图就足够了.鉴于现在分辨率的趋势,建议取720p的资源,放到xhdpi目录. 相对于多套资源,只使用7 ...

  10. 004-React-Native--多图选择上传

    参考资料:http://www.jianshu.com/p/488e62ed9656 一:使用react-native-image-crop-picker进行图片选择时,并没有提供多图的机制.当你从相 ...