opt:删除主从配置:WO,WQLCore,WQLObject,DataBaceConfig,ResultBean数据源及数据分装

This commit is contained in:
zhangzq
2025-06-23 10:03:49 +08:00
parent 5e7914c19f
commit 51f816de93
8 changed files with 64 additions and 112 deletions

View File

@@ -113,11 +113,11 @@
<artifactId>hutool-all</artifactId> <artifactId>hutool-all</artifactId>
<version>${hutool.version}</version> <version>${hutool.version}</version>
</dependency> </dependency>
<dependency> <!-- <dependency>-->
<groupId>org.apache.shardingsphere</groupId> <!-- <groupId>org.apache.shardingsphere</groupId>-->
<artifactId>shardingsphere-jdbc-core-spring-boot-starter</artifactId> <!-- <artifactId>shardingsphere-jdbc-core-spring-boot-starter</artifactId>-->
<version>5.1.1</version> <!-- <version>5.1.1</version>-->
</dependency> <!-- </dependency>-->
<!--Spring boot 核心 --> <!--Spring boot 核心 -->
<dependency> <dependency>
<groupId>org.springframework.boot</groupId> <groupId>org.springframework.boot</groupId>

View File

@@ -10,7 +10,7 @@ import org.springframework.context.annotation.Primary;
import javax.sql.DataSource; import javax.sql.DataSource;
//@Configuration @Configuration
@Slf4j @Slf4j
public class DataBaseConfig { public class DataBaseConfig {
public static CountSqlParser countSqlParser = new CountSqlParser(); public static CountSqlParser countSqlParser = new CountSqlParser();

View File

@@ -28,7 +28,7 @@ public class WQLCore {
//解析wql文件的根目录 //解析wql文件的根目录
public static String ROOT = "wql"; public static String ROOT = "wql";
//数据库默认名 //数据库默认名
public static String defalutDBName = "shardingSphereDataSource"; public static String defalutDBName = "dataSource";
//wql源文件 //wql源文件
public static HashMap<String, ArrayList<String>> wqlMap = new HashMap<String, ArrayList<String>>(); public static HashMap<String, ArrayList<String>> wqlMap = new HashMap<String, ArrayList<String>>();

View File

@@ -20,7 +20,6 @@ import org.apache.commons.beanutils.BasicDynaBean;
import org.apache.commons.beanutils.BasicDynaClass; import org.apache.commons.beanutils.BasicDynaClass;
import org.apache.commons.beanutils.DynaProperty; import org.apache.commons.beanutils.DynaProperty;
import org.apache.commons.beanutils.RowSetDynaClass; import org.apache.commons.beanutils.RowSetDynaClass;
import org.apache.shardingsphere.driver.jdbc.core.resultset.ShardingSphereResultSet;
import org.nl.modules.wql.util.WqlUtil; import org.nl.modules.wql.util.WqlUtil;
import java.beans.IntrospectionException; import java.beans.IntrospectionException;
@@ -343,10 +342,10 @@ public class ResultBean implements Serializable, Cloneable {
} }
try { try {
//支持别名的设置 //支持别名的设置
if (sqlResultSet instanceof ShardingSphereResultSet){ // if (sqlResultSet instanceof ShardingSphereResultSet){
ShardingSphereResultSet resultSet = (ShardingSphereResultSet) sqlResultSet; // ShardingSphereResultSet resultSet = (ShardingSphereResultSet) sqlResultSet;
sqlResultSet = resultSet.getResultSets().get(0); // sqlResultSet = resultSet.getResultSets().get(0);
} // }
WQLRowSetDynaClass rs = new WQLRowSetDynaClass(sqlResultSet, true, -1); WQLRowSetDynaClass rs = new WQLRowSetDynaClass(sqlResultSet, true, -1);
rslist.add(rs); rslist.add(rs);

View File

@@ -26,7 +26,7 @@ public class WQLObject implements Serializable, Cloneable {
private static final long serialVersionUID = 3512111887957792224L; private static final long serialVersionUID = 3512111887957792224L;
private String dbname = "shardingSphereDataSource"; //指定使用的数据库 private String dbname = "dataSource"; //指定使用的数据库
public WQLObject setDbname(String dbname) { public WQLObject setDbname(String dbname) {
this.dbname = dbname; this.dbname = dbname;

View File

@@ -47,7 +47,7 @@ public class WO implements Serializable, Cloneable {
public WP wp; public WP wp;
private String code = ""; //当前交易编号 private String code = ""; //当前交易编号
private String dbname = "shardingSphereDataSource"; //指定使用的数据库 private String dbname = "dataSource"; //指定使用的数据库
public WO setDbname(String dbname) { public WO setDbname(String dbname) {
this.dbname = dbname; this.dbname = dbname;

View File

@@ -480,7 +480,7 @@ public class ClassstandardServiceImpl implements ClassstandardService {
//添加子节点 //添加子节点
try { try {
List<Entity> list = Db.use((DataSource) SpringContextHolder.getBean("shardingSphereDataSource")).query(sql); List<Entity> list = Db.use((DataSource) SpringContextHolder.getBean("dataSource")).query(sql);
list.forEach(item -> { list.forEach(item -> {
set.add(item.getStr("class_id")); set.add(item.getStr("class_id"));
}); });

View File

@@ -2,103 +2,56 @@ server:
port: 8013 port: 8013
#配置数据源 #配置数据源
spring: spring:
shardingsphere: datasource:
datasource: druid:
names: master,slave db-type: com.alibaba.druid.pool.DruidDataSource
master: driverClassName: net.sf.log4jdbc.sql.jdbcapi.DriverSpy
type: com.alibaba.druid.pool.DruidDataSource 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
driver-class-name: com.mysql.cj.jdbc.Driver username: ${DB_USER:root}
# 初始连接数 password: ${DB_PWD:123456}
initial-size: 20 # 初始连接数
# 最小连接数 initial-size: 5
min-idle: 30 # 最小连接数
# 最大连接数 min-idle: 15
max-active: 300 # 最大连接数
# 是否自动回收超时连接 max-active: 30
socket-timeout: 10 # 超时时间(以秒数为单位)
query-time-out: 7 remove-abandoned-timeout: 180
transaction-query-timeout: 30 # 获取连接超时时间
# 获取连接超时时间 max-wait: 3000
max-wait: 4000 # 连接有效性检测时间
# 连接有效性检测时间 time-between-eviction-runs-millis: 60000
time-between-eviction-runs-millis: 60000 # 连接在池中最小生存的时间
# 连接在池中最小生存的时间 min-evictable-idle-time-millis: 300000
min-evictable-idle-time-millis: 300000 # 连接在池中最大生存的时间
# 连接在池中最大生存的时间 max-evictable-idle-time-millis: 900000
max-evictable-idle-time-millis: 900000 # 指明连接是否被空闲连接回收器(如果有)进行检验.如果检测失败,则连接将被从池中去除
# 指明连接是否被空闲连接回收器(如果有)进行检验.如果检测失败,则连接将被从池中去除 test-while-idle: true
test-while-idle: true # 指明是否在从池中取出连接前进行检验,如果检验失败, 则从池中去除连接并尝试取出另一个
# 指明是否在从池中取出连接前进行检验,如果检验失败, 则从池中去除连接并尝试取出另一个 test-on-borrow: true
test-on-borrow: true # 是否在归还到池中前进行检验
# 是否在归还到池中前进行检验 test-on-return: false
test-on-return: false # 检测连接是否有效
# 检测连接是否有效 validation-query: select 1
validation-query: select 1 # 配置监控统计
# 配置监控统计 webStatFilter:
webStatFilter: enabled: true
enabled: true stat-view-servlet:
stat-view-servlet: enabled: true
enabled: true url-pattern: /druid/*
url-pattern: /druid/* reset-enable: false
reset-enable: false filters:
filters: DruidFilter,stat
DruidFilter,stat # query-timeout: 1
url: jdbc:mysql://localhost:3306/lms?serverTimezone=Asia/Shanghai&characterEncoding=utf8&useSSL=false&useOldAliasMetadataBehavior=true&allowPublicKeyRetrieval=true # stat:
username: root # enabled: true
password: 123456 # # 记录慢SQL
slave: # log-slow-sql: true
type: com.alibaba.druid.pool.DruidDataSource # slow-sql-millis: 1000
driver-class-name: com.mysql.cj.jdbc.Driver # merge-sql: true
# 初始连接数 # wall:
initial-size: 20 # config:
# 最小连接数 # multi-statement-allow: true
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?serverTimezone=Asia/Shanghai&characterEncoding=utf8&useSSL=false&useOldAliasMetadataBehavior=true&allowPublicKeyRetrieval=true
username: root
password: 123456
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: redis:
#数据库索引 #数据库索引
database: ${REDIS_DB:15} database: ${REDIS_DB:15}