diff --git a/ktg-admin/pom.xml b/ktg-admin/pom.xml
index 8d2da14..246b229 100644
--- a/ktg-admin/pom.xml
+++ b/ktg-admin/pom.xml
@@ -117,7 +117,12 @@
com.microsoft.sqlserver
mssql-jdbc
- 12.4.2.jre8
+ 7.4.1.jre8
+
+
+ net.sourceforge.jtds
+ jtds
+ 1.3.1
diff --git a/ktg-admin/src/main/resources/application-druid.yml b/ktg-admin/src/main/resources/application-druid.yml
index b09205e..de103ae 100644
--- a/ktg-admin/src/main/resources/application-druid.yml
+++ b/ktg-admin/src/main/resources/application-druid.yml
@@ -11,33 +11,52 @@ spring:
url: jdbc:dm://192.168.8.60:5236/WMS_DJ?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8
username: SYSDBA
password: SYSDBA
+ # 初始连接数
+ initialSize: 5
+ # 最小连接池数量
+ minIdle: 10
+ # 最大连接池数量
+ maxActive: 20
+ # 配置获取连接等待超时的时间
+ maxWait: 60000
+ # 配置间隔多久才进行一次检测,检测需要关闭的空闲连接,单位是毫秒
+ timeBetweenEvictionRunsMillis: 60000
+ # 配置一个连接在池中最小生存的时间,单位是毫秒
+ minEvictableIdleTimeMillis: 300000
+ # 配置一个连接在池中最大生存的时间,单位是毫秒
+ maxEvictableIdleTimeMillis: 900000
+ # 配置检测连接是否有效
+ validationQuery: SELECT 1 FROM DUAL
+ testWhileIdle: true
+ testOnBorrow: false
+ testOnReturn: false
# 从库数据源
sqlserver:
# 从数据源开关/默认关闭
enabled: true
- driverClassName: com.microsoft.sqlserver.jdbc.SQLServerDriver
- url: jdbc:sqlserver://192.168.8.68:1433;DatabaseName=DPG_RH_YQ_20240711;encrypt=false;trustServerCertificate=true;
+ driverClassName: net.sourceforge.jtds.jdbc.Driver
+ url: jdbc:jtds:sqlserver://192.168.8.68:1433/DPG_RH_YQ_20240711
username: sa
password: rh123456
- # 初始连接数
- initialSize: 5
- # 最小连接池数量
- minIdle: 10
- # 最大连接池数量
- maxActive: 20
- # 配置获取连接等待超时的时间
- maxWait: 60000
- # 配置间隔多久才进行一次检测,检测需要关闭的空闲连接,单位是毫秒
- timeBetweenEvictionRunsMillis: 60000
- # 配置一个连接在池中最小生存的时间,单位是毫秒
- minEvictableIdleTimeMillis: 300000
- # 配置一个连接在池中最大生存的时间,单位是毫秒
- maxEvictableIdleTimeMillis: 900000
- # 配置检测连接是否有效
- validationQuery: SELECT 1 FROM DUAL
- testWhileIdle: true
- testOnBorrow: false
- testOnReturn: false
+ # 初始连接数
+ initialSize: 5
+ # 最小连接池数量
+ minIdle: 10
+ # 最大连接池数量
+ maxActive: 20
+ # 配置获取连接等待超时的时间
+ maxWait: 60000
+ # 配置间隔多久才进行一次检测,检测需要关闭的空闲连接,单位是毫秒
+ timeBetweenEvictionRunsMillis: 60000
+ # 配置一个连接在池中最小生存的时间,单位是毫秒
+ minEvictableIdleTimeMillis: 300000
+ # 配置一个连接在池中最大生存的时间,单位是毫秒
+ maxEvictableIdleTimeMillis: 900000
+ # 配置检测连接是否有效
+ validationQuery: SELECT 1
+ testWhileIdle: true
+ testOnBorrow: false
+ testOnReturn: false
webStatFilter:
enabled: true
statViewServlet:
diff --git a/ktg-framework/src/main/java/com/ktg/framework/config/DruidConfig.java b/ktg-framework/src/main/java/com/ktg/framework/config/DruidConfig.java
index fc5705c..5205a59 100644
--- a/ktg-framework/src/main/java/com/ktg/framework/config/DruidConfig.java
+++ b/ktg-framework/src/main/java/com/ktg/framework/config/DruidConfig.java
@@ -10,6 +10,8 @@ import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
import javax.sql.DataSource;
+import com.ktg.framework.config.properties.DmDruidProperties;
+import com.ktg.framework.config.properties.SqlserverDruidProperties;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
import org.springframework.boot.context.properties.ConfigurationProperties;
@@ -23,7 +25,6 @@ import com.alibaba.druid.spring.boot.autoconfigure.properties.DruidStatPropertie
import com.alibaba.druid.util.Utils;
import com.ktg.common.enums.DataSourceType;
import com.ktg.common.utils.spring.SpringUtils;
-import com.ktg.framework.config.properties.DruidProperties;
import com.ktg.framework.datasource.DynamicDataSource;
/**
@@ -36,7 +37,7 @@ public class DruidConfig
{
@Bean
@ConfigurationProperties("spring.datasource.druid.dm")
- public DataSource dmDataSource(DruidProperties druidProperties)
+ public DataSource dmDataSource(DmDruidProperties druidProperties)
{
DruidDataSource dataSource = DruidDataSourceBuilder.create().build();
return druidProperties.dataSource(dataSource);
@@ -45,7 +46,7 @@ public class DruidConfig
@Bean
@ConfigurationProperties("spring.datasource.druid.sqlserver")
@ConditionalOnProperty(prefix = "spring.datasource.druid.sqlserver", name = "enabled", havingValue = "true")
- public DataSource sqlServerDataSource(DruidProperties druidProperties)
+ public DataSource sqlServerDataSource(SqlserverDruidProperties druidProperties)
{
DruidDataSource dataSource = DruidDataSourceBuilder.create().build();
return druidProperties.dataSource(dataSource);
diff --git a/ktg-framework/src/main/java/com/ktg/framework/config/properties/DmDruidProperties.java b/ktg-framework/src/main/java/com/ktg/framework/config/properties/DmDruidProperties.java
new file mode 100644
index 0000000..d7ce166
--- /dev/null
+++ b/ktg-framework/src/main/java/com/ktg/framework/config/properties/DmDruidProperties.java
@@ -0,0 +1,77 @@
+package com.ktg.framework.config.properties;
+
+import com.alibaba.druid.pool.DruidDataSource;
+import org.springframework.beans.factory.annotation.Value;
+import org.springframework.context.annotation.Configuration;
+
+/**
+ * druid 配置属性
+ *
+ * @author ruoyi
+ */
+@Configuration
+public class DmDruidProperties
+{
+ @Value("${spring.datasource.druid.dm.initialSize}")
+ private int initialSize;
+
+ @Value("${spring.datasource.druid.dm.minIdle}")
+ private int minIdle;
+
+ @Value("${spring.datasource.druid.dm.maxActive}")
+ private int maxActive;
+
+ @Value("${spring.datasource.druid.dm.maxWait}")
+ private int maxWait;
+
+ @Value("${spring.datasource.druid.dm.timeBetweenEvictionRunsMillis}")
+ private int timeBetweenEvictionRunsMillis;
+
+ @Value("${spring.datasource.druid.dm.minEvictableIdleTimeMillis}")
+ private int minEvictableIdleTimeMillis;
+
+ @Value("${spring.datasource.druid.dm.maxEvictableIdleTimeMillis}")
+ private int maxEvictableIdleTimeMillis;
+
+ @Value("${spring.datasource.druid.dm.validationQuery}")
+ private String validationQuery;
+
+ @Value("${spring.datasource.druid.dm.testWhileIdle}")
+ private boolean testWhileIdle;
+
+ @Value("${spring.datasource.druid.dm.testOnBorrow}")
+ private boolean testOnBorrow;
+
+ @Value("${spring.datasource.druid.dm.testOnReturn}")
+ private boolean testOnReturn;
+
+ public DruidDataSource dataSource(DruidDataSource datasource)
+ {
+ /** 配置初始化大小、最小、最大 */
+ datasource.setInitialSize(initialSize);
+ datasource.setMaxActive(maxActive);
+ datasource.setMinIdle(minIdle);
+
+ /** 配置获取连接等待超时的时间 */
+ datasource.setMaxWait(maxWait);
+
+ /** 配置间隔多久才进行一次检测,检测需要关闭的空闲连接,单位是毫秒 */
+ datasource.setTimeBetweenEvictionRunsMillis(timeBetweenEvictionRunsMillis);
+
+ /** 配置一个连接在池中最小、最大生存的时间,单位是毫秒 */
+ datasource.setMinEvictableIdleTimeMillis(minEvictableIdleTimeMillis);
+ datasource.setMaxEvictableIdleTimeMillis(maxEvictableIdleTimeMillis);
+
+ /**
+ * 用来检测连接是否有效的sql,要求是一个查询语句,常用select 'x'。如果validationQuery为null,testOnBorrow、testOnReturn、testWhileIdle都不会起作用。
+ */
+ datasource.setValidationQuery(validationQuery);
+ /** 建议配置为true,不影响性能,并且保证安全性。申请连接的时候检测,如果空闲时间大于timeBetweenEvictionRunsMillis,执行validationQuery检测连接是否有效。 */
+ datasource.setTestWhileIdle(testWhileIdle);
+ /** 申请连接时执行validationQuery检测连接是否有效,做了这个配置会降低性能。 */
+ datasource.setTestOnBorrow(testOnBorrow);
+ /** 归还连接时执行validationQuery检测连接是否有效,做了这个配置会降低性能。 */
+ datasource.setTestOnReturn(testOnReturn);
+ return datasource;
+ }
+}
diff --git a/ktg-framework/src/main/java/com/ktg/framework/config/properties/DruidProperties.java b/ktg-framework/src/main/java/com/ktg/framework/config/properties/DruidProperties.java
index 298a7e7..aa2ffb6 100644
--- a/ktg-framework/src/main/java/com/ktg/framework/config/properties/DruidProperties.java
+++ b/ktg-framework/src/main/java/com/ktg/framework/config/properties/DruidProperties.java
@@ -1,77 +1,77 @@
-package com.ktg.framework.config.properties;
-
-import org.springframework.beans.factory.annotation.Value;
-import org.springframework.context.annotation.Configuration;
-import com.alibaba.druid.pool.DruidDataSource;
-
-/**
- * druid 配置属性
- *
- * @author ruoyi
- */
-@Configuration
-public class DruidProperties
-{
- @Value("${spring.datasource.druid.initialSize}")
- private int initialSize;
-
- @Value("${spring.datasource.druid.minIdle}")
- private int minIdle;
-
- @Value("${spring.datasource.druid.maxActive}")
- private int maxActive;
-
- @Value("${spring.datasource.druid.maxWait}")
- private int maxWait;
-
- @Value("${spring.datasource.druid.timeBetweenEvictionRunsMillis}")
- private int timeBetweenEvictionRunsMillis;
-
- @Value("${spring.datasource.druid.minEvictableIdleTimeMillis}")
- private int minEvictableIdleTimeMillis;
-
- @Value("${spring.datasource.druid.maxEvictableIdleTimeMillis}")
- private int maxEvictableIdleTimeMillis;
-
- @Value("${spring.datasource.druid.validationQuery}")
- private String validationQuery;
-
- @Value("${spring.datasource.druid.testWhileIdle}")
- private boolean testWhileIdle;
-
- @Value("${spring.datasource.druid.testOnBorrow}")
- private boolean testOnBorrow;
-
- @Value("${spring.datasource.druid.testOnReturn}")
- private boolean testOnReturn;
-
- public DruidDataSource dataSource(DruidDataSource datasource)
- {
- /** 配置初始化大小、最小、最大 */
- datasource.setInitialSize(initialSize);
- datasource.setMaxActive(maxActive);
- datasource.setMinIdle(minIdle);
-
- /** 配置获取连接等待超时的时间 */
- datasource.setMaxWait(maxWait);
-
- /** 配置间隔多久才进行一次检测,检测需要关闭的空闲连接,单位是毫秒 */
- datasource.setTimeBetweenEvictionRunsMillis(timeBetweenEvictionRunsMillis);
-
- /** 配置一个连接在池中最小、最大生存的时间,单位是毫秒 */
- datasource.setMinEvictableIdleTimeMillis(minEvictableIdleTimeMillis);
- datasource.setMaxEvictableIdleTimeMillis(maxEvictableIdleTimeMillis);
-
- /**
- * 用来检测连接是否有效的sql,要求是一个查询语句,常用select 'x'。如果validationQuery为null,testOnBorrow、testOnReturn、testWhileIdle都不会起作用。
- */
- datasource.setValidationQuery(validationQuery);
- /** 建议配置为true,不影响性能,并且保证安全性。申请连接的时候检测,如果空闲时间大于timeBetweenEvictionRunsMillis,执行validationQuery检测连接是否有效。 */
- datasource.setTestWhileIdle(testWhileIdle);
- /** 申请连接时执行validationQuery检测连接是否有效,做了这个配置会降低性能。 */
- datasource.setTestOnBorrow(testOnBorrow);
- /** 归还连接时执行validationQuery检测连接是否有效,做了这个配置会降低性能。 */
- datasource.setTestOnReturn(testOnReturn);
- return datasource;
- }
-}
+//package com.ktg.framework.config.properties;
+//
+//import org.springframework.beans.factory.annotation.Value;
+//import org.springframework.context.annotation.Configuration;
+//import com.alibaba.druid.pool.DruidDataSource;
+//
+///**
+// * druid 配置属性
+// *
+// * @author ruoyi
+// */
+//@Configuration
+//public class DruidProperties
+//{
+// @Value("${spring.datasource.druid.initialSize}")
+// private int initialSize;
+//
+// @Value("${spring.datasource.druid.minIdle}")
+// private int minIdle;
+//
+// @Value("${spring.datasource.druid.maxActive}")
+// private int maxActive;
+//
+// @Value("${spring.datasource.druid.maxWait}")
+// private int maxWait;
+//
+// @Value("${spring.datasource.druid.timeBetweenEvictionRunsMillis}")
+// private int timeBetweenEvictionRunsMillis;
+//
+// @Value("${spring.datasource.druid.minEvictableIdleTimeMillis}")
+// private int minEvictableIdleTimeMillis;
+//
+// @Value("${spring.datasource.druid.maxEvictableIdleTimeMillis}")
+// private int maxEvictableIdleTimeMillis;
+//
+// @Value("${spring.datasource.druid.validationQuery}")
+// private String validationQuery;
+//
+// @Value("${spring.datasource.druid.testWhileIdle}")
+// private boolean testWhileIdle;
+//
+// @Value("${spring.datasource.druid.testOnBorrow}")
+// private boolean testOnBorrow;
+//
+// @Value("${spring.datasource.druid.testOnReturn}")
+// private boolean testOnReturn;
+//
+// public DruidDataSource dataSource(DruidDataSource datasource)
+// {
+// /** 配置初始化大小、最小、最大 */
+// datasource.setInitialSize(initialSize);
+// datasource.setMaxActive(maxActive);
+// datasource.setMinIdle(minIdle);
+//
+// /** 配置获取连接等待超时的时间 */
+// datasource.setMaxWait(maxWait);
+//
+// /** 配置间隔多久才进行一次检测,检测需要关闭的空闲连接,单位是毫秒 */
+// datasource.setTimeBetweenEvictionRunsMillis(timeBetweenEvictionRunsMillis);
+//
+// /** 配置一个连接在池中最小、最大生存的时间,单位是毫秒 */
+// datasource.setMinEvictableIdleTimeMillis(minEvictableIdleTimeMillis);
+// datasource.setMaxEvictableIdleTimeMillis(maxEvictableIdleTimeMillis);
+//
+// /**
+// * 用来检测连接是否有效的sql,要求是一个查询语句,常用select 'x'。如果validationQuery为null,testOnBorrow、testOnReturn、testWhileIdle都不会起作用。
+// */
+// datasource.setValidationQuery(validationQuery);
+// /** 建议配置为true,不影响性能,并且保证安全性。申请连接的时候检测,如果空闲时间大于timeBetweenEvictionRunsMillis,执行validationQuery检测连接是否有效。 */
+// datasource.setTestWhileIdle(testWhileIdle);
+// /** 申请连接时执行validationQuery检测连接是否有效,做了这个配置会降低性能。 */
+// datasource.setTestOnBorrow(testOnBorrow);
+// /** 归还连接时执行validationQuery检测连接是否有效,做了这个配置会降低性能。 */
+// datasource.setTestOnReturn(testOnReturn);
+// return datasource;
+// }
+//}
diff --git a/ktg-framework/src/main/java/com/ktg/framework/config/properties/SqlserverDruidProperties.java b/ktg-framework/src/main/java/com/ktg/framework/config/properties/SqlserverDruidProperties.java
new file mode 100644
index 0000000..b848de3
--- /dev/null
+++ b/ktg-framework/src/main/java/com/ktg/framework/config/properties/SqlserverDruidProperties.java
@@ -0,0 +1,77 @@
+package com.ktg.framework.config.properties;
+
+import com.alibaba.druid.pool.DruidDataSource;
+import org.springframework.beans.factory.annotation.Value;
+import org.springframework.context.annotation.Configuration;
+
+/**
+ * druid 配置属性
+ *
+ * @author ruoyi
+ */
+@Configuration
+public class SqlserverDruidProperties
+{
+ @Value("${spring.datasource.druid.sqlserver.initialSize}")
+ private int initialSize;
+
+ @Value("${spring.datasource.druid.sqlserver.minIdle}")
+ private int minIdle;
+
+ @Value("${spring.datasource.druid.sqlserver.maxActive}")
+ private int maxActive;
+
+ @Value("${spring.datasource.druid.sqlserver.maxWait}")
+ private int maxWait;
+
+ @Value("${spring.datasource.druid.sqlserver.timeBetweenEvictionRunsMillis}")
+ private int timeBetweenEvictionRunsMillis;
+
+ @Value("${spring.datasource.druid.sqlserver.minEvictableIdleTimeMillis}")
+ private int minEvictableIdleTimeMillis;
+
+ @Value("${spring.datasource.druid.sqlserver.maxEvictableIdleTimeMillis}")
+ private int maxEvictableIdleTimeMillis;
+
+ @Value("${spring.datasource.druid.sqlserver.validationQuery}")
+ private String validationQuery;
+
+ @Value("${spring.datasource.druid.sqlserver.testWhileIdle}")
+ private boolean testWhileIdle;
+
+ @Value("${spring.datasource.druid.sqlserver.testOnBorrow}")
+ private boolean testOnBorrow;
+
+ @Value("${spring.datasource.druid.sqlserver.testOnReturn}")
+ private boolean testOnReturn;
+
+ public DruidDataSource dataSource(DruidDataSource datasource)
+ {
+ /** 配置初始化大小、最小、最大 */
+ datasource.setInitialSize(initialSize);
+ datasource.setMaxActive(maxActive);
+ datasource.setMinIdle(minIdle);
+
+ /** 配置获取连接等待超时的时间 */
+ datasource.setMaxWait(maxWait);
+
+ /** 配置间隔多久才进行一次检测,检测需要关闭的空闲连接,单位是毫秒 */
+ datasource.setTimeBetweenEvictionRunsMillis(timeBetweenEvictionRunsMillis);
+
+ /** 配置一个连接在池中最小、最大生存的时间,单位是毫秒 */
+ datasource.setMinEvictableIdleTimeMillis(minEvictableIdleTimeMillis);
+ datasource.setMaxEvictableIdleTimeMillis(maxEvictableIdleTimeMillis);
+
+ /**
+ * 用来检测连接是否有效的sql,要求是一个查询语句,常用select 'x'。如果validationQuery为null,testOnBorrow、testOnReturn、testWhileIdle都不会起作用。
+ */
+ datasource.setValidationQuery(validationQuery);
+ /** 建议配置为true,不影响性能,并且保证安全性。申请连接的时候检测,如果空闲时间大于timeBetweenEvictionRunsMillis,执行validationQuery检测连接是否有效。 */
+ datasource.setTestWhileIdle(testWhileIdle);
+ /** 申请连接时执行validationQuery检测连接是否有效,做了这个配置会降低性能。 */
+ datasource.setTestOnBorrow(testOnBorrow);
+ /** 归还连接时执行validationQuery检测连接是否有效,做了这个配置会降低性能。 */
+ datasource.setTestOnReturn(testOnReturn);
+ return datasource;
+ }
+}