摘要:寫一個(gè)類繼續(xù)寫一個(gè)類繼承邏輯刪除寫一個(gè)枚舉類根據(jù)參數(shù)邏輯刪除根據(jù)修改數(shù)據(jù)根據(jù)邏輯刪除根據(jù)修改數(shù)據(jù)最后一步就是注入到執(zhí)行效率插件設(shè)置環(huán)境開啟
1 寫一個(gè)類繼續(xù) 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 " + "
}
寫一個(gè)類繼承baseMapper
/** * 邏輯刪除 * @param entity * @param updateWrapper * @return */ int logicDeleteByWrapper(@Param(Constants.ENTITY) T entity, @Param(Constants.WRAPPER) WrapperupdateWrapper);
寫一個(gè)枚舉類
public enum MySqlMethod {
/** * 根據(jù)參數(shù)邏輯刪除 */ LOGIC_DELETE_BY_WRAPPER("logicDeleteByWrapper", "根據(jù)ID 修改數(shù)據(jù)", ""), /** * 根據(jù)id邏輯刪除 */ LOGIC_DELETE_BY_ID("logicDeleteById", "根據(jù)ID 修改數(shù)據(jù)", ""); 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執(zhí)行效率插件 */ @Bean @Profile({"dev","test"})// 設(shè)置 dev test 環(huán)境開啟 public PerformanceInterceptor performanceInterceptor() { return new PerformanceInterceptor(); }
}
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/72668.html
摘要:下面我會(huì)詳細(xì)地從源碼的角度分析下文簡(jiǎn)寫成是如何實(shí)現(xiàn)自動(dòng)注入的原理。文件解析器,解析對(duì)應(yīng)的文件信息,并將文件信息注冊(cè)到中。節(jié)點(diǎn)解析器,用于構(gòu)建節(jié)點(diǎn)信息。注冊(cè)與綁定類,將的類信息與綁定。 微信公眾號(hào)「后端進(jìn)階」,專注后端技術(shù)分享:Java、Golang、WEB框架、分布式中間件、服務(wù)治理等等。 老司機(jī)傾囊相授,帶你一路進(jìn)階,來不及解釋了快上車! mybatis-plus是完全基于myba...
摘要:本章目的基于平臺(tái)整合分別完成客戶端服務(wù)端的單元測(cè)試。在測(cè)試控制器內(nèi)添加了三個(gè)測(cè)試方法,我們接下來開始編寫單元測(cè)試代碼??偨Y(jié)本章主要介紹了基于平臺(tái)的兩種單元測(cè)試方式,一種是在服務(wù)端采用注入方式將需要測(cè)試的或者注入到測(cè)試類中,然后調(diào)用方法即可。 單元測(cè)試對(duì)于開發(fā)人員來說是非常熟悉的,我們每天的工作也都是圍繞著開發(fā)與測(cè)試進(jìn)行的,在最早的時(shí)候測(cè)試都是采用工具Debug模式進(jìn)行調(diào)試程序,后來Ju...
摘要:本文使用實(shí)現(xiàn)對(duì)定時(shí)任務(wù)的增刪改查啟用停用等功能。并把定時(shí)任務(wù)持久化到數(shù)據(jù)庫以及支持集群。決定什么時(shí)候來執(zhí)行任務(wù)。定義的是任務(wù)數(shù)據(jù),而真正的執(zhí)行邏輯是在中。封裝定時(shí)任務(wù)接口添加一個(gè)暫?;謴?fù)刪除修改暫停所有恢復(fù)所有 簡(jiǎn)介 Quartz是一款功能強(qiáng)大的任務(wù)調(diào)度器,可以實(shí)現(xiàn)較為復(fù)雜的調(diào)度功能,如每月一號(hào)執(zhí)行、每天凌晨執(zhí)行、每周五執(zhí)行等等,還支持分布式調(diào)度。本文使用Springboot+Myba...
閱讀 3332·2023-04-25 16:25
閱讀 3861·2021-11-15 18:01
閱讀 1620·2021-09-10 11:21
閱讀 3026·2021-08-02 16:53
閱讀 3094·2019-08-30 15:55
閱讀 2499·2019-08-29 16:24
閱讀 2112·2019-08-29 13:14
閱讀 1048·2019-08-29 13:00