From bf9421931333577b6d2e456db1a2d0e1f47e9200 Mon Sep 17 00:00:00 2001 From: Tom Li Date: Fri, 9 Jan 2026 11:21:11 +0800 Subject: [PATCH] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E7=89=A9=E7=90=86=E5=88=A0?= =?UTF-8?q?=E9=99=A4=E7=9B=B8=E5=85=B3=E6=96=B9=E6=B3=95=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../basic/mapper/en/DeleteAbsoluteById.java | 36 +++++++++++++++++++ .../desk/basic/mapper/en/EnBaseMapper.java | 10 +++++- .../basic/mapper/en/EnCustomSqlInjector.java | 17 +++++++++ .../desk/basic/mapper/en/EnMyBatisConfig.java | 18 ++++++++++ 4 files changed, 80 insertions(+), 1 deletion(-) create mode 100644 blade-service/blade-desk/src/main/java/org/springblade/desk/basic/mapper/en/DeleteAbsoluteById.java create mode 100644 blade-service/blade-desk/src/main/java/org/springblade/desk/basic/mapper/en/EnCustomSqlInjector.java create mode 100644 blade-service/blade-desk/src/main/java/org/springblade/desk/basic/mapper/en/EnMyBatisConfig.java diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/basic/mapper/en/DeleteAbsoluteById.java b/blade-service/blade-desk/src/main/java/org/springblade/desk/basic/mapper/en/DeleteAbsoluteById.java new file mode 100644 index 00000000..c4f4935f --- /dev/null +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/basic/mapper/en/DeleteAbsoluteById.java @@ -0,0 +1,36 @@ +package org.springblade.desk.basic.mapper.en; + +import com.baomidou.mybatisplus.core.enums.SqlMethod; +import com.baomidou.mybatisplus.core.injector.AbstractMethod; +import com.baomidou.mybatisplus.core.metadata.TableInfo; +import org.apache.ibatis.mapping.MappedStatement; +import org.apache.ibatis.mapping.SqlSource; + +import java.beans.Introspector; + +/** + * deleteAbsoluteById + */ +public class DeleteAbsoluteById extends AbstractMethod { + + public DeleteAbsoluteById() { + this(Introspector.decapitalize(DeleteAbsoluteById.class.getSimpleName())); + } + + /** + * @param methodName 方法名 + * @since 3.5.0 + */ + protected DeleteAbsoluteById(String methodName) { + super(methodName); + } + + @Override + public MappedStatement injectMappedStatement(Class mapperClass, Class modelClass, TableInfo tableInfo) { + SqlMethod sqlMethod = SqlMethod.DELETE_BY_ID; + String sql = String.format(sqlMethod.getSql(), tableInfo.getTableName(), tableInfo.getKeyColumn(), + tableInfo.getKeyProperty()); + SqlSource sqlSource = languageDriver.createSqlSource(configuration, sql, Object.class); + return this.addDeleteMappedStatement(mapperClass, methodName, sqlSource); + } +} diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/basic/mapper/en/EnBaseMapper.java b/blade-service/blade-desk/src/main/java/org/springblade/desk/basic/mapper/en/EnBaseMapper.java index 510a3c05..7d7df382 100644 --- a/blade-service/blade-desk/src/main/java/org/springblade/desk/basic/mapper/en/EnBaseMapper.java +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/basic/mapper/en/EnBaseMapper.java @@ -3,11 +3,19 @@ package org.springblade.desk.basic.mapper.en; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import org.springblade.core.mp.base.BaseEntity; +import java.io.Serializable; + /** * Enhance MyBatis Plus BaseMapper. * * @param */ public interface EnBaseMapper extends BaseMapper { - + + /** + * 根据 ID 物理删除 + * @param id + * @return + */ + int deleteAbsoluteById(Serializable id); } diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/basic/mapper/en/EnCustomSqlInjector.java b/blade-service/blade-desk/src/main/java/org/springblade/desk/basic/mapper/en/EnCustomSqlInjector.java new file mode 100644 index 00000000..d42486f6 --- /dev/null +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/basic/mapper/en/EnCustomSqlInjector.java @@ -0,0 +1,17 @@ +package org.springblade.desk.basic.mapper.en; + +import com.baomidou.mybatisplus.core.injector.AbstractMethod; +import com.baomidou.mybatisplus.core.injector.DefaultSqlInjector; +import com.baomidou.mybatisplus.core.metadata.TableInfo; + +import java.util.List; + +public class EnCustomSqlInjector extends DefaultSqlInjector { + + @Override + public List getMethodList(Class mapperClass, TableInfo tableInfo) { + List methodList = super.getMethodList(mapperClass, tableInfo); + methodList.add(new DeleteAbsoluteById()); + return methodList; + } +} diff --git a/blade-service/blade-desk/src/main/java/org/springblade/desk/basic/mapper/en/EnMyBatisConfig.java b/blade-service/blade-desk/src/main/java/org/springblade/desk/basic/mapper/en/EnMyBatisConfig.java new file mode 100644 index 00000000..1678e3fa --- /dev/null +++ b/blade-service/blade-desk/src/main/java/org/springblade/desk/basic/mapper/en/EnMyBatisConfig.java @@ -0,0 +1,18 @@ +package org.springblade.desk.basic.mapper.en; + +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; + +@Configuration +public class EnMyBatisConfig { + + /** + * 注册自定义SQL注入器 + * + * @return + */ + @Bean + public EnCustomSqlInjector customSqlInjector() { + return new EnCustomSqlInjector(); + } +}