MyBatisPlus插件扩展_SqlExplainInterceptor执行分析插件的使用
生活随笔
收集整理的這篇文章主要介紹了
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的地方。
<!--? 配置SqlSessionFactoryBeanMybatis提供的: org.mybatis.spring.SqlSessionFactoryBeanMP提供的: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>編寫測試方法
/**** 執行分析插件*/@Testpublic void testExplainPlugin() {//不傳任何條件 所以是刪除全表操作employeeMapper.delete(null);}運行結果
可以看到提示失敗原因是全表操作被拒絕。
源碼下載
https://download.csdn.net/download/badao_liumang_qizhi/11147569
總結
以上是生活随笔為你收集整理的MyBatisPlus插件扩展_SqlExplainInterceptor执行分析插件的使用的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: MyBatisPlus插件扩展_Pagi
- 下一篇: MyBatisPlus插件扩展_Perf