摘要:寫一個類繼續寫一個類繼承邏輯刪除寫一個枚舉類根據參數邏輯刪除根據修改數據根據邏輯刪除根據修改數據最后一步就是注入到執行效率插件設置環境開啟
1 寫一個類繼續 AbstractLogicMethod
public class LogicDeleteByWrapper extends AbstractLogicMethod {
@Override public MappedStatement injectMappedStatement(Class> mapperClass, Class> modelClass, TableInfo tableInfo) { String sql; MySqlMethod sqlMethod = MySqlMethod.LOGIC_DELETE_BY_WRAPPER; sql = String.format(sqlMethod.getSql(), tableInfo.getTableName(), sqlLogicSet(), sqlWhereEntityWrapper(tableInfo)); SqlSource sqlSource = languageDriver.createSqlSource(configuration, sql, modelClass); return addUpdateMappedStatement(mapperClass, modelClass, sqlMethod.getMethod(), sqlSource); } public String sqlLogicSet(){ String sql ="" + " "; return sql; }update_by=#{et.updateBy}, " + "update_time=#{et.updateTime}, " + "is_deleted = 1 " + "
}
寫一個類繼承baseMapper
/** * 邏輯刪除 * @param entity * @param updateWrapper * @return */ int logicDeleteByWrapper(@Param(Constants.ENTITY) T entity, @Param(Constants.WRAPPER) WrapperupdateWrapper);
寫一個枚舉類
public enum MySqlMethod {
/** * 根據參數邏輯刪除 */ LOGIC_DELETE_BY_WRAPPER("logicDeleteByWrapper", "根據ID 修改數據", ""), /** * 根據id邏輯刪除 */ LOGIC_DELETE_BY_ID("logicDeleteById", "根據ID 修改數據", ""); private final String method; private final String desc; private final String sql; MySqlMethod(String method, String desc, String sql) { this.method = method; this.desc = desc; this.sql = sql; } public String getMethod() { return method; } public String getDesc() { return desc; } public String getSql() { return sql; }
}
最后一步就是注入到bean
public class MyLogicSqlInjector extends AbstractSqlInjector {
@Override public ListgetMethodList() { return Stream.of( new LogicDeleteByWrapper() ).collect(Collectors.toList()); } @Override public void injectSqlRunner(Configuration configuration) { new SqlRunnerInjector().inject(configuration); }
}
@Configuration
@MapperScan("com.xxx.xxx.*.dao")
public class MybatisPlusConfig {
@Bean public PaginationInterceptor paginationInterceptor() { return new PaginationInterceptor(); } @Bean public ISqlInjector sqlInjector() { return new MyLogicSqlInjector(); } /** * SQL執行效率插件 */ @Bean @Profile({"dev","test"})// 設置 dev test 環境開啟 public PerformanceInterceptor performanceInterceptor() { return new PerformanceInterceptor(); }
}
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/72668.html
摘要:下面我會詳細地從源碼的角度分析下文簡寫成是如何實現自動注入的原理。文件解析器,解析對應的文件信息,并將文件信息注冊到中。節點解析器,用于構建節點信息。注冊與綁定類,將的類信息與綁定。 微信公眾號「后端進階」,專注后端技術分享:Java、Golang、WEB框架、分布式中間件、服務治理等等。 老司機傾囊相授,帶你一路進階,來不及解釋了快上車! mybatis-plus是完全基于myba...
摘要:本章目的基于平臺整合分別完成客戶端服務端的單元測試。在測試控制器內添加了三個測試方法,我們接下來開始編寫單元測試代碼??偨Y本章主要介紹了基于平臺的兩種單元測試方式,一種是在服務端采用注入方式將需要測試的或者注入到測試類中,然后調用方法即可。 單元測試對于開發人員來說是非常熟悉的,我們每天的工作也都是圍繞著開發與測試進行的,在最早的時候測試都是采用工具Debug模式進行調試程序,后來Ju...
摘要:本文使用實現對定時任務的增刪改查啟用停用等功能。并把定時任務持久化到數據庫以及支持集群。決定什么時候來執行任務。定義的是任務數據,而真正的執行邏輯是在中。封裝定時任務接口添加一個暫?;謴蛣h除修改暫停所有恢復所有 簡介 Quartz是一款功能強大的任務調度器,可以實現較為復雜的調度功能,如每月一號執行、每天凌晨執行、每周五執行等等,還支持分布式調度。本文使用Springboot+Myba...
閱讀 3318·2023-04-25 16:25
閱讀 3823·2021-11-15 18:01
閱讀 1600·2021-09-10 11:21
閱讀 3007·2021-08-02 16:53
閱讀 3081·2019-08-30 15:55
閱讀 2489·2019-08-29 16:24
閱讀 2098·2019-08-29 13:14
閱讀 1027·2019-08-29 13:00