From a68a32d9b6f23bdfdd950ab654d3776362539573 Mon Sep 17 00:00:00 2001
From: 疯狂的狮子li <15040126243@163.com>
Date: 星期四, 10 三月 2022 19:47:31 +0800
Subject: [PATCH] add 增加 DataBaseHelper 数据库助手 用于屏蔽多类型数据库sql语句差异

---
 ruoyi-generator/src/main/java/com/ruoyi/generator/service/BaseGenTableServiceImpl.java |   38 +++++++++++---------------------------
 1 files changed, 11 insertions(+), 27 deletions(-)

diff --git a/ruoyi-generator/src/main/java/com/ruoyi/generator/service/BaseGenTableServiceImpl.java b/ruoyi-generator/src/main/java/com/ruoyi/generator/service/BaseGenTableServiceImpl.java
index b51668f..6d3034f 100644
--- a/ruoyi-generator/src/main/java/com/ruoyi/generator/service/BaseGenTableServiceImpl.java
+++ b/ruoyi-generator/src/main/java/com/ruoyi/generator/service/BaseGenTableServiceImpl.java
@@ -3,27 +3,23 @@
 import cn.hutool.core.io.IoUtil;
 import cn.hutool.core.lang.Dict;
 import cn.hutool.core.util.ObjectUtil;
-import com.baomidou.dynamic.datasource.DynamicRoutingDataSource;
 import com.baomidou.dynamic.datasource.annotation.DS;
 import com.ruoyi.common.constant.GenConstants;
 import com.ruoyi.common.core.domain.PageQuery;
 import com.ruoyi.common.core.page.TableDataInfo;
 import com.ruoyi.common.exception.ServiceException;
+import com.ruoyi.common.helper.DataBaseHelper;
 import com.ruoyi.common.utils.JsonUtils;
 import com.ruoyi.common.utils.StringUtils;
 import com.ruoyi.common.utils.spring.SpringUtils;
 import com.ruoyi.generator.domain.GenTable;
 import com.ruoyi.generator.domain.GenTableColumn;
 import com.ruoyi.generator.util.VelocityUtils;
-import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.context.annotation.Primary;
 import org.springframework.stereotype.Service;
 
-import javax.sql.DataSource;
 import java.io.ByteArrayOutputStream;
 import java.io.File;
-import java.sql.DatabaseMetaData;
-import java.sql.SQLException;
 import java.util.List;
 import java.util.Map;
 import java.util.zip.ZipOutputStream;
@@ -38,30 +34,18 @@
 @Service
 public class BaseGenTableServiceImpl implements IGenTableService {
 
-    @Autowired
-    private DataSource dataSource;
-
     public BaseGenTableServiceImpl getService() {
-        DynamicRoutingDataSource ds = (DynamicRoutingDataSource) this.dataSource;
-        DataSource dataSource = ds.determineDataSource();
-        try {
-            DatabaseMetaData metaData = dataSource.getConnection().getMetaData();
-            String databaseProductName = metaData.getDatabaseProductName();
-            if ("MySQL".equals(databaseProductName)) {
-                return SpringUtils.getBean(GenTableServiceImpl.class);
-            } else if ("Oracle".equals(databaseProductName)) {
-                return SpringUtils.getBean(OracleGenTableServiceImpl.class);
-            } else if ("PostgreSQL".equals(databaseProductName)) {
-
-            } else if ("Microsoft SQL Server".equals(databaseProductName)) {
-
-            } else {
-                throw new ServiceException("褰撳墠鏁版嵁搴撶被鍨嬩笉鏀寔 => " + databaseProductName);
-            }
-        } catch (SQLException e) {
-            throw new ServiceException(e.getMessage());
+        if (DataBaseHelper.isMySql()) {
+            return SpringUtils.getBean(GenTableServiceImpl.class);
+        } else if (DataBaseHelper.isOracle()) {
+            return SpringUtils.getBean(OracleGenTableServiceImpl.class);
+        } else if (DataBaseHelper.isPostgerSql()) {
+            throw new ServiceException("褰撳墠鏁版嵁搴撶被鍨嬩笉鏀寔!!!");
+        } else if (DataBaseHelper.isSqlServer()) {
+            throw new ServiceException("褰撳墠鏁版嵁搴撶被鍨嬩笉鏀寔!!!");
+        } else {
+            throw new ServiceException("褰撳墠鏁版嵁搴撶被鍨嬩笉鏀寔!!!");
         }
-        return null;
     }
 
     /**

--
Gitblit v1.9.3