成人无码视频,亚洲精品久久久久av无码,午夜精品久久久久久毛片,亚洲 中文字幕 日韩 无码

資訊專欄INFORMATION COLUMN

springboot mybaits-plus Sql 注入器 自定義邏輯刪除

bitkylin / 2249人閱讀

摘要:寫一個類繼續(xù)寫一個類繼承邏輯刪除寫一個枚舉類根據(jù)參數(shù)邏輯刪除根據(jù)修改數(shù)據(jù)根據(jù)邏輯刪除根據(jù)修改數(shù)據(jù)最后一步就是注入到執(zhí)行效率插件設(shè)置環(huán)境開啟

1 寫一個類繼續(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 ="
" +
            "update_by=#{et.updateBy},
" +
            "update_time=#{et.updateTime},
" +
            "is_deleted = 1
" +
            " ";
    return sql;
}

}
寫一個類繼承baseMapper

/**
 * 邏輯刪除
 * @param entity
 * @param updateWrapper
 * @return
 */
int logicDeleteByWrapper(@Param(Constants.ENTITY) T entity, @Param(Constants.WRAPPER) Wrapper updateWrapper);

寫一個枚舉類

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 List getMethodList() {
    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)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://m.hztianpu.com/yun/72668.html

相關(guān)文章

  • mybatis-plus源碼分析之sql注入

    摘要:下面我會詳細地從源碼的角度分析下文簡寫成是如何實現(xiàn)自動注入的原理。文件解析器,解析對應(yīng)的文件信息,并將文件信息注冊到中。節(jié)點解析器,用于構(gòu)建節(jié)點信息。注冊與綁定類,將的類信息與綁定。 微信公眾號「后端進階」,專注后端技術(shù)分享:Java、Golang、WEB框架、分布式中間件、服務(wù)治理等等。 老司機傾囊相授,帶你一路進階,來不及解釋了快上車! mybatis-plus是完全基于myba...

    gougoujiang 評論0 收藏0
  • 第三十五章:SpringBoot與單元測試的小秘密

    摘要:本章目的基于平臺整合分別完成客戶端服務(wù)端的單元測試。在測試控制器內(nèi)添加了三個測試方法,我們接下來開始編寫單元測試代碼??偨Y(jié)本章主要介紹了基于平臺的兩種單元測試方式,一種是在服務(wù)端采用注入方式將需要測試的或者注入到測試類中,然后調(diào)用方法即可。 單元測試對于開發(fā)人員來說是非常熟悉的,我們每天的工作也都是圍繞著開發(fā)與測試進行的,在最早的時候測試都是采用工具Debug模式進行調(diào)試程序,后來Ju...

    hikui 評論0 收藏0
  • Springboot整合Quartz實現(xiàn)動態(tài)定時任務(wù)

    摘要:本文使用實現(xiàn)對定時任務(wù)的增刪改查啟用停用等功能。并把定時任務(wù)持久化到數(shù)據(jù)庫以及支持集群。決定什么時候來執(zhí)行任務(wù)。定義的是任務(wù)數(shù)據(jù),而真正的執(zhí)行邏輯是在中。封裝定時任務(wù)接口添加一個暫?;謴?fù)刪除修改暫停所有恢復(fù)所有 簡介 Quartz是一款功能強大的任務(wù)調(diào)度器,可以實現(xiàn)較為復(fù)雜的調(diào)度功能,如每月一號執(zhí)行、每天凌晨執(zhí)行、每周五執(zhí)行等等,還支持分布式調(diào)度。本文使用Springboot+Myba...

    IamDLY 評論0 收藏0

發(fā)表評論

0條評論

閱讀需要支付1元查看
<