MyBatisPlus插件扩展_SqlExplainInterceptor执行分析插件的使用
生活随笔
收集整理的這篇文章主要介紹了
MyBatisPlus插件扩展_SqlExplainInterceptor执行分析插件的使用
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
場(chǎng)景
項(xiàng)目搭建專欄:
https://blog.csdn.net/BADAO_LIUMANG_QIZHI/column/info/37194
簡(jiǎn)介
SQL 執(zhí)行分析攔截器【 目前只支持 MYSQL-5.6.3 以上版本 】,
作用是分析 處理 DELETE UPDATE 語(yǔ)句, 防止小白或者惡意 delete update 全表操作!
com.baomidou.mybatisplus.plugins.SqlExplainInterceptor參數(shù):stopProceed 發(fā)現(xiàn)執(zhí)行全表 delete update 語(yǔ)句是否停止執(zhí)行
注意!該插件只用于開發(fā)環(huán)境,不建議生產(chǎn)環(huán)境使用。。。
原理
在插件的底層,通過SQL語(yǔ)句分析命令:Explain分析當(dāng)前SQL語(yǔ)句,根據(jù)結(jié)果集中的Extra列來判定當(dāng)前是否全局操作。
實(shí)現(xiàn)
來到項(xiàng)目下的applicationContext.xml中配置sqlSessionFactoryBean的地方。
<!--? 配置SqlSessionFactoryBeanMybatis提供的: org.mybatis.spring.SqlSessionFactoryBeanMP提供的:com.baomidou.mybatisplus.spring.MybatisSqlSessionFactoryBean--><bean id="sqlSessionFactoryBean" class="com.baomidou.mybatisplus.spring.MybatisSqlSessionFactoryBean"><!-- 數(shù)據(jù)源 --><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>?<!-- 插件注冊(cè) --><property name="plugins"><list><!-- 注冊(cè)分頁(yè)插件 --><bean class="com.baomidou.mybatisplus.plugins.PaginationInterceptor"></bean><!-- 注冊(cè)執(zhí)行分析插件 --><bean class="com.baomidou.mybatisplus.plugins.SqlExplainInterceptor"><property name="stopProceed" value="true" /></bean></list></property>?</bean>編寫測(cè)試方法
/**** 執(zhí)行分析插件*/@Testpublic void testExplainPlugin() {//不傳任何條件 所以是刪除全表操作employeeMapper.delete(null);}運(yùn)行結(jié)果
可以看到提示失敗原因是全表操作被拒絕。
源碼下載
https://download.csdn.net/download/badao_liumang_qizhi/11147569
總結(jié)
以上是生活随笔為你收集整理的MyBatisPlus插件扩展_SqlExplainInterceptor执行分析插件的使用的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: MyBatisPlus插件扩展_Pagi
- 下一篇: MyBatisPlus插件扩展_Perf