src/main/java/com/lf/server/config/InitConfig.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/java/com/lf/server/helper/ClassHelper.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/java/com/lf/server/service/all/BaseQueryService.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 |
src/main/java/com/lf/server/config/InitConfig.java
@@ -11,6 +11,7 @@ import com.lf.server.helper.AesHelper; import com.lf.server.helper.PathHelper; import com.lf.server.mapper.bd.DlgAgnpMapper; import com.lf.server.service.all.BaseQueryService; import com.lf.server.service.all.PermsService; import com.lf.server.service.sys.ArgsService; import com.lf.server.service.sys.BlacklistService; @@ -49,6 +50,9 @@ @Autowired BlacklistService blacklistService; @Autowired BaseQueryService baseQueryService; @Override public void run(ApplicationArguments args) { // noinspection AlibabaRemoveCommentedCode @@ -81,7 +85,8 @@ } private void testMybatisPlus() { List<String> list0 = dlgAgnpMapper.selectFuzzy("bd.dlg_agnp", "name", "%县%"); String tabName = baseQueryService.getTabName(dlgAgnpMapper); List<String> list0 = dlgAgnpMapper.selectFuzzy(tabName, "name", "%县%"); DlgAgnpEntity dlg = dlgAgnpMapper.selectById(1); String wkt = dlgAgnpMapper.selectWktById("bd.dlg_agnp", 2); src/main/java/com/lf/server/helper/ClassHelper.java
@@ -3,6 +3,9 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.springframework.aop.support.AopUtils; import java.lang.reflect.Type; /** * 类帮助类 @@ -30,18 +33,6 @@ } /** * 根据BaseMapper创建实体类 * * @param baseMapper 父Mapper * @return 实体类 */ public static Object createEntityByMapper(BaseMapper baseMapper) { String className = baseMapper.getClass().getName().replace(".mapper", ".entity").replace("Mapper", "Entity"); return createInstance(className); } /** * 获取Bean * * @param className 类名 @@ -57,4 +48,48 @@ return null; } } /** * 获取类名 * * @param baseMapper 父Mapper * @return 类名 */ public static String getClassName(BaseMapper baseMapper) { Type[] genericInterfaces = AopUtils.getTargetClass(baseMapper).getGenericInterfaces(); return genericInterfaces[0].getTypeName(); } /** * 根据Mapper类名获取实体类的Class * * @param className Mapper类名 * @return 实体类的Class */ public static Class getEntityClass(String className) { try { className = className.replace(".mapper", ".entity").replace("Mapper", "Entity"); Class clazz = Class.forName(className); return clazz; } catch (Exception ex) { log.error(ex.getMessage(), ex); return null; } } /** * 根据BaseMapper创建实体类 * * @param baseMapper 父Mapper * @return 实体类 */ public static Object createEntityByMapper(BaseMapper baseMapper) { String className = getClassName(baseMapper); className = className.replace(".mapper", ".entity").replace("Mapper", "Entity"); return createInstance(className); } } src/main/java/com/lf/server/service/all/BaseQueryService.java
@@ -1,5 +1,6 @@ package com.lf.server.service.all; import cn.hutool.db.meta.Table; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.lf.server.helper.AesHelper; import com.lf.server.helper.ClassHelper; @@ -8,12 +9,20 @@ import com.lf.server.mapper.all.GeomBaseMapper; import org.springframework.stereotype.Service; import java.util.HashMap; import java.util.Map; /** * 父查询服务类 * @author WWW */ @Service public class BaseQueryService { /** * 表名Map */ private static Map<String, String> tabMap = new HashMap<String, String>(3); /** * 获取父Mapper * @@ -159,11 +168,33 @@ * @return 表名 */ public String getTabName(BasicMapper basicMapper) { Object obj = ClassHelper.createEntityByMapper(basicMapper); if (obj == null) { String className = ClassHelper.getClassName(basicMapper); if (tabMap.containsKey(className)) { return tabMap.get(className); } return getTabName(className); } /** * 根据Mapper获取表名 * * @param className Mapper类名 * @return 表名 */ private String getTabName(String className) { Class clazz = ClassHelper.getEntityClass(className); if (clazz == null) { return null; } return null; Table annotation = (Table) clazz.getAnnotation(Table.class); String tabName = annotation.getTableName(); if (tabName != null && !tabMap.containsKey(className)) { tabMap.put(className, tabName); } return tabName; } }