diff --git a/lms/nladmin-system/pom.xml b/lms/nladmin-system/pom.xml
index e7e51c413..10dc9ac93 100644
--- a/lms/nladmin-system/pom.xml
+++ b/lms/nladmin-system/pom.xml
@@ -113,12 +113,12 @@
hutool-all
${hutool.version}
-
-
-
-
-
-
+
+ org.apache.shardingsphere
+ shardingsphere-jdbc-core-spring-boot-starter
+ 5.1.1
+
+
org.springframework.boot
spring-boot-starter-data-jpa
diff --git a/lms/nladmin-system/src/main/java/org/nl/config/DataBaseConfig.java b/lms/nladmin-system/src/main/java/org/nl/config/DataBaseConfig.java
index 88e916df8..3671c0ada 100644
--- a/lms/nladmin-system/src/main/java/org/nl/config/DataBaseConfig.java
+++ b/lms/nladmin-system/src/main/java/org/nl/config/DataBaseConfig.java
@@ -10,7 +10,7 @@ import org.springframework.context.annotation.Primary;
import javax.sql.DataSource;
-@Configuration
+//@Configuration
@Slf4j
public class DataBaseConfig {
public static CountSqlParser countSqlParser = new CountSqlParser();
diff --git a/lms/nladmin-system/src/main/java/org/nl/modules/wql/WQLCore.java b/lms/nladmin-system/src/main/java/org/nl/modules/wql/WQLCore.java
index 22e50fccb..9e888d301 100644
--- a/lms/nladmin-system/src/main/java/org/nl/modules/wql/WQLCore.java
+++ b/lms/nladmin-system/src/main/java/org/nl/modules/wql/WQLCore.java
@@ -28,7 +28,7 @@ public class WQLCore {
//解析wql文件的根目录
public static String ROOT = "wql";
//数据库默认名
- public static String defalutDBName = "dataSource";
+ public static String defalutDBName = "shardingSphereDataSource";
//wql源文件
public static HashMap> wqlMap = new HashMap>();
diff --git a/lms/nladmin-system/src/main/java/org/nl/modules/wql/core/bean/ResultBean.java b/lms/nladmin-system/src/main/java/org/nl/modules/wql/core/bean/ResultBean.java
index a03195232..d5d12947e 100644
--- a/lms/nladmin-system/src/main/java/org/nl/modules/wql/core/bean/ResultBean.java
+++ b/lms/nladmin-system/src/main/java/org/nl/modules/wql/core/bean/ResultBean.java
@@ -20,6 +20,7 @@ import org.apache.commons.beanutils.BasicDynaBean;
import org.apache.commons.beanutils.BasicDynaClass;
import org.apache.commons.beanutils.DynaProperty;
import org.apache.commons.beanutils.RowSetDynaClass;
+import org.apache.shardingsphere.driver.jdbc.core.resultset.ShardingSphereResultSet;
import org.nl.modules.wql.util.WqlUtil;
import java.beans.IntrospectionException;
@@ -342,10 +343,10 @@ public class ResultBean implements Serializable, Cloneable {
}
try {
//支持别名的设置
-// if (sqlResultSet instanceof ShardingSphereResultSet){
-// ShardingSphereResultSet resultSet = (ShardingSphereResultSet) sqlResultSet;
-// sqlResultSet = resultSet.getResultSets().get(0);
-// }
+ if (sqlResultSet instanceof ShardingSphereResultSet){
+ ShardingSphereResultSet resultSet = (ShardingSphereResultSet) sqlResultSet;
+ sqlResultSet = resultSet.getResultSets().get(0);
+ }
WQLRowSetDynaClass rs = new WQLRowSetDynaClass(sqlResultSet, true, -1);
rslist.add(rs);
diff --git a/lms/nladmin-system/src/main/java/org/nl/modules/wql/core/bean/WQLObject.java b/lms/nladmin-system/src/main/java/org/nl/modules/wql/core/bean/WQLObject.java
index 32a23d9f4..6ed6b045d 100644
--- a/lms/nladmin-system/src/main/java/org/nl/modules/wql/core/bean/WQLObject.java
+++ b/lms/nladmin-system/src/main/java/org/nl/modules/wql/core/bean/WQLObject.java
@@ -26,7 +26,7 @@ public class WQLObject implements Serializable, Cloneable {
private static final long serialVersionUID = 3512111887957792224L;
- private String dbname = "dataSource"; //指定使用的数据库
+ private String dbname = "shardingSphereDataSource"; //指定使用的数据库
public WQLObject setDbname(String dbname) {
this.dbname = dbname;
diff --git a/lms/nladmin-system/src/main/java/org/nl/modules/wql/core/engine/object/WO.java b/lms/nladmin-system/src/main/java/org/nl/modules/wql/core/engine/object/WO.java
index 90bce7448..9e47f4255 100644
--- a/lms/nladmin-system/src/main/java/org/nl/modules/wql/core/engine/object/WO.java
+++ b/lms/nladmin-system/src/main/java/org/nl/modules/wql/core/engine/object/WO.java
@@ -47,7 +47,7 @@ public class WO implements Serializable, Cloneable {
public WP wp;
private String code = ""; //当前交易编号
- private String dbname = "dataSource"; //指定使用的数据库
+ private String dbname = "shardingSphereDataSource"; //指定使用的数据库
public WO setDbname(String dbname) {
this.dbname = dbname;
diff --git a/lms/nladmin-system/src/main/java/org/nl/wms/basedata/master/service/impl/ClassstandardServiceImpl.java b/lms/nladmin-system/src/main/java/org/nl/wms/basedata/master/service/impl/ClassstandardServiceImpl.java
index 74c727342..35acd3bf2 100644
--- a/lms/nladmin-system/src/main/java/org/nl/wms/basedata/master/service/impl/ClassstandardServiceImpl.java
+++ b/lms/nladmin-system/src/main/java/org/nl/wms/basedata/master/service/impl/ClassstandardServiceImpl.java
@@ -480,7 +480,7 @@ public class ClassstandardServiceImpl implements ClassstandardService {
//添加子节点
try {
- List list = Db.use((DataSource) SpringContextHolder.getBean("dataSource")).query(sql);
+ List list = Db.use((DataSource) SpringContextHolder.getBean("shardingSphereDataSource")).query(sql);
list.forEach(item -> {
set.add(item.getStr("class_id"));
});
diff --git a/lms/nladmin-system/src/main/resources/config/application-dev.yml b/lms/nladmin-system/src/main/resources/config/application-dev.yml
index bfedb32b9..564da1c16 100644
--- a/lms/nladmin-system/src/main/resources/config/application-dev.yml
+++ b/lms/nladmin-system/src/main/resources/config/application-dev.yml
@@ -2,56 +2,103 @@ server:
port: 8013
#配置数据源
spring:
- datasource:
- druid:
- db-type: com.alibaba.druid.pool.DruidDataSource
- driverClassName: net.sf.log4jdbc.sql.jdbcapi.DriverSpy
- url: jdbc:log4jdbc:mysql://${DB_HOST:127.0.0.1}:${DB_PORT:3306}/${DB_NAME:lms}?serverTimezone=Asia/Shanghai&characterEncoding=utf8&useSSL=false&useOldAliasMetadataBehavior=true
- username: ${DB_USER:root}
- password: ${DB_PWD:123456}
- # 初始连接数
- initial-size: 5
- # 最小连接数
- min-idle: 15
- # 最大连接数
- max-active: 30
- # 超时时间(以秒数为单位)
- remove-abandoned-timeout: 180
- # 获取连接超时时间
- max-wait: 3000
- # 连接有效性检测时间
- time-between-eviction-runs-millis: 60000
- # 连接在池中最小生存的时间
- min-evictable-idle-time-millis: 300000
- # 连接在池中最大生存的时间
- max-evictable-idle-time-millis: 900000
- # 指明连接是否被空闲连接回收器(如果有)进行检验.如果检测失败,则连接将被从池中去除
- test-while-idle: true
- # 指明是否在从池中取出连接前进行检验,如果检验失败, 则从池中去除连接并尝试取出另一个
- test-on-borrow: true
- # 是否在归还到池中前进行检验
- test-on-return: false
- # 检测连接是否有效
- validation-query: select 1
- # 配置监控统计
- webStatFilter:
- enabled: true
- stat-view-servlet:
- enabled: true
- url-pattern: /druid/*
- reset-enable: false
- filters:
- DruidFilter,stat
- # query-timeout: 1
- # stat:
- # enabled: true
- # # 记录慢SQL
- # log-slow-sql: true
- # slow-sql-millis: 1000
- # merge-sql: true
- # wall:
- # config:
- # multi-statement-allow: true
+ shardingsphere:
+ datasource:
+ names: master,slave
+ master:
+ type: com.alibaba.druid.pool.DruidDataSource
+ driver-class-name: com.mysql.cj.jdbc.Driver
+ # 初始连接数
+ initial-size: 20
+ # 最小连接数
+ min-idle: 30
+ # 最大连接数
+ max-active: 300
+ # 是否自动回收超时连接
+ socket-timeout: 10
+ query-time-out: 7
+ transaction-query-timeout: 30
+ # 获取连接超时时间
+ max-wait: 4000
+ # 连接有效性检测时间
+ time-between-eviction-runs-millis: 60000
+ # 连接在池中最小生存的时间
+ min-evictable-idle-time-millis: 300000
+ # 连接在池中最大生存的时间
+ max-evictable-idle-time-millis: 900000
+ # 指明连接是否被空闲连接回收器(如果有)进行检验.如果检测失败,则连接将被从池中去除
+ test-while-idle: true
+ # 指明是否在从池中取出连接前进行检验,如果检验失败, 则从池中去除连接并尝试取出另一个
+ test-on-borrow: true
+ # 是否在归还到池中前进行检验
+ test-on-return: false
+ # 检测连接是否有效
+ validation-query: select 1
+ # 配置监控统计
+ webStatFilter:
+ enabled: true
+ stat-view-servlet:
+ enabled: true
+ url-pattern: /druid/*
+ reset-enable: false
+ filters:
+ DruidFilter,stat
+ url: jdbc:mysql://localhost:3306/lms_xc?serverTimezone=Asia/Shanghai&characterEncoding=utf8&useSSL=false&useOldAliasMetadataBehavior=true&allowPublicKeyRetrieval=true
+ username: root
+ password: root
+ slave:
+ type: com.alibaba.druid.pool.DruidDataSource
+ driver-class-name: com.mysql.cj.jdbc.Driver
+ # 初始连接数
+ initial-size: 20
+ # 最小连接数
+ min-idle: 30
+ # 最大连接数
+ max-active: 300
+ # 是否自动回收超时连接
+ socket-timeout: 10
+ query-time-out: 7
+ transaction-query-timeout: 30
+ # 获取连接超时时间
+ max-wait: 4000
+ # 连接有效性检测时间
+ time-between-eviction-runs-millis: 60000
+ # 连接在池中最小生存的时间
+ min-evictable-idle-time-millis: 300000
+ # 连接在池中最大生存的时间
+ max-evictable-idle-time-millis: 900000
+ # 指明连接是否被空闲连接回收器(如果有)进行检验.如果检测失败,则连接将被从池中去除
+ test-while-idle: true
+ # 指明是否在从池中取出连接前进行检验,如果检验失败, 则从池中去除连接并尝试取出另一个
+ test-on-borrow: true
+ # 是否在归还到池中前进行检验
+ test-on-return: false
+ # 检测连接是否有效
+ validation-query: select 1
+ # 配置监控统计
+ webStatFilter:
+ enabled: true
+ stat-view-servlet:
+ enabled: true
+ url-pattern: /druid/*
+ reset-enable: false
+ filters:
+ DruidFilter,stat
+ url: jdbc:mysql://127.0.0.1:3306/lms_xc?serverTimezone=Asia/Shanghai&characterEncoding=utf8&useSSL=false&useOldAliasMetadataBehavior=true&allowPublicKeyRetrieval=true
+ username: root
+ password: root
+ rules:
+ readwrite-splitting:
+ data-sources:
+ db:
+ type: Static
+ props:
+ #接口有事务,读写分离不生效,默认全部使用主库
+ write-data-source-name: master
+ read-data-source-names: slave
+ #负载均衡算法名称
+ load-balancer-name: round-robin
+
redis:
#数据库索引
database: ${REDIS_DB:15}