新增:利元亨现场第三数据源添加
This commit is contained in:
@@ -22,7 +22,7 @@ import java.io.IOException;
|
||||
@Configuration
|
||||
// 扫描第二个数据源的Mapper包,指定专属的sqlSessionFactory
|
||||
@MapperScan(
|
||||
basePackages = "com.sdm.outbridge.dao",
|
||||
basePackages = "com.sdm.outbridge.secondDao",
|
||||
sqlSessionFactoryRef = "secondSqlSessionFactory"
|
||||
)
|
||||
public class SecondMybatisPlusConfig {
|
||||
@@ -45,7 +45,7 @@ public class SecondMybatisPlusConfig {
|
||||
MybatisSqlSessionFactoryBean fb = new MybatisSqlSessionFactoryBean();
|
||||
// 设置第二个数据源的Mapper.xml路径(建议独立存放,避免冲突)
|
||||
fb.setMapperLocations(new PathMatchingResourcePatternResolver()
|
||||
.getResources("classpath*:outbridgemapper/*.xml"));
|
||||
.getResources("classpath*:secondDaoMapper/*.xml"));
|
||||
|
||||
// 绑定第二个数据源
|
||||
fb.setDataSource(dataSource);
|
||||
|
||||
@@ -0,0 +1,70 @@
|
||||
package com.sdm.outbridge.config;
|
||||
|
||||
import com.baomidou.mybatisplus.core.MybatisConfiguration;
|
||||
import com.baomidou.mybatisplus.extension.spring.MybatisSqlSessionFactoryBean;
|
||||
import org.apache.ibatis.session.SqlSessionFactory;
|
||||
import org.mybatis.spring.SqlSessionTemplate;
|
||||
import org.mybatis.spring.annotation.MapperScan;
|
||||
import org.springframework.beans.factory.annotation.Qualifier;
|
||||
import org.springframework.boot.context.properties.ConfigurationProperties;
|
||||
import org.springframework.boot.jdbc.DataSourceBuilder;
|
||||
import org.springframework.context.annotation.Bean;
|
||||
import org.springframework.context.annotation.Configuration;
|
||||
import org.springframework.core.io.support.PathMatchingResourcePatternResolver;
|
||||
|
||||
import javax.sql.DataSource;
|
||||
import java.io.IOException;
|
||||
|
||||
/**
|
||||
* 第二个数据源的MyBatis-Plus配置
|
||||
* 扫描专属的Mapper包,使用独立的数据源
|
||||
*/
|
||||
@Configuration
|
||||
// 扫描第二个数据源的Mapper包,指定专属的sqlSessionFactory
|
||||
@MapperScan(
|
||||
basePackages = "com.sdm.outbridge.thirdDao",
|
||||
sqlSessionFactoryRef = "thirdSqlSessionFactory"
|
||||
)
|
||||
public class ThirdMybatisPlusConfig {
|
||||
|
||||
/**
|
||||
* 初始化第二个数据源
|
||||
*/
|
||||
@Bean(name = "thirdDataSource")
|
||||
@ConfigurationProperties(prefix = "spring.datasource.third") // 对应yml中的third数据源配置
|
||||
public DataSource thirdDataSource() {
|
||||
return DataSourceBuilder.create().build();
|
||||
}
|
||||
|
||||
/**
|
||||
* 第二个数据源的SqlSessionFactory
|
||||
*/
|
||||
@Bean(name = "thirdSqlSessionFactory")
|
||||
public MybatisSqlSessionFactoryBean thirdSqlSessionFactory(
|
||||
@Qualifier("thirdDataSource") DataSource dataSource) throws IOException {
|
||||
MybatisSqlSessionFactoryBean fb = new MybatisSqlSessionFactoryBean();
|
||||
// 设置第二个数据源的Mapper.xml路径(建议独立存放,避免冲突)
|
||||
fb.setMapperLocations(new PathMatchingResourcePatternResolver()
|
||||
.getResources("classpath*:thirdDaoMapper/*.xml"));
|
||||
|
||||
// 绑定第二个数据源
|
||||
fb.setDataSource(dataSource);
|
||||
// 开启下划线转驼峰(和原有配置保持一致)
|
||||
MybatisConfiguration configuration = new MybatisConfiguration();
|
||||
configuration.setMapUnderscoreToCamelCase(true);
|
||||
fb.setConfiguration(configuration);
|
||||
// 如需分页插件,可在此添加(和原有配置一致)
|
||||
// fb.setPlugins(new MybatisPlusInterceptor(new PaginationInnerInterceptor(DbType.MYSQL)));
|
||||
return fb;
|
||||
}
|
||||
|
||||
/**
|
||||
* 第二个数据源的SqlSessionTemplate(可选,MyBatis-Plus可自动适配,建议添加)
|
||||
*/
|
||||
@Bean(name = "thirdSqlSessionTemplate")
|
||||
public SqlSessionTemplate thirdSqlSessionTemplate(
|
||||
@Qualifier("thirdSqlSessionFactory") SqlSessionFactory sqlSessionFactory) throws Exception {
|
||||
return new SqlSessionTemplate(sqlSessionFactory);
|
||||
}
|
||||
|
||||
}
|
||||
@@ -1,4 +1,4 @@
|
||||
package com.sdm.outbridge.dao;
|
||||
package com.sdm.outbridge.secondDao;
|
||||
|
||||
import org.apache.ibatis.annotations.Param;
|
||||
import org.apache.ibatis.annotations.Select;
|
||||
@@ -1,4 +1,4 @@
|
||||
package com.sdm.outbridge.dao;
|
||||
package com.sdm.outbridge.secondDao;
|
||||
|
||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||
import com.sdm.outbridge.entity.LyricVMainPlanDM;
|
||||
@@ -1,4 +1,4 @@
|
||||
package com.sdm.outbridge.dao;
|
||||
package com.sdm.outbridge.secondDao;
|
||||
|
||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||
import com.sdm.outbridge.entity.LyricVPdtToDM;
|
||||
@@ -1,4 +1,4 @@
|
||||
package com.sdm.outbridge.dao;
|
||||
package com.sdm.outbridge.secondDao;
|
||||
|
||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||
import com.sdm.outbridge.entity.LyricVProductionLineToDM;
|
||||
@@ -1,4 +1,4 @@
|
||||
package com.sdm.outbridge.dao;
|
||||
package com.sdm.outbridge.secondDao;
|
||||
|
||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||
import com.sdm.outbridge.entity.LyricVProjectBatchToDM;
|
||||
@@ -1,4 +1,4 @@
|
||||
package com.sdm.outbridge.dao;
|
||||
package com.sdm.outbridge.secondDao;
|
||||
|
||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||
import com.sdm.outbridge.entity.LyricVProjectResourcePlanDM;
|
||||
@@ -1,8 +1,7 @@
|
||||
package com.sdm.outbridge.dao;
|
||||
package com.sdm.outbridge.secondDao;
|
||||
|
||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||
import com.sdm.outbridge.entity.LyricVProjectStationPlanToDM;
|
||||
import com.sdm.outbridge.entity.LyricVProjectStationToDM;
|
||||
|
||||
public interface LyricVProjectStationPlanToDmMapper extends BaseMapper<LyricVProjectStationPlanToDM> {
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
package com.sdm.outbridge.dao;
|
||||
package com.sdm.outbridge.secondDao;
|
||||
|
||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||
import com.sdm.outbridge.entity.LyricVProjectStationToDM;
|
||||
@@ -1,4 +1,4 @@
|
||||
package com.sdm.outbridge.dao;
|
||||
package com.sdm.outbridge.secondDao;
|
||||
|
||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||
import com.sdm.outbridge.entity.LyricVProjectToDM;
|
||||
@@ -1,4 +1,4 @@
|
||||
package com.sdm.outbridge.dao;
|
||||
package com.sdm.outbridge.secondDao;
|
||||
|
||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||
import com.sdm.outbridge.entity.LyricVTodoEmulationInfoDM;
|
||||
@@ -1,7 +1,7 @@
|
||||
package com.sdm.outbridge.service.impl.lyric;
|
||||
|
||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||
import com.sdm.outbridge.dao.LyricVMainPlanDMMapper;
|
||||
import com.sdm.outbridge.secondDao.LyricVMainPlanDMMapper;
|
||||
import com.sdm.outbridge.entity.LyricVMainPlanDM;
|
||||
import com.sdm.outbridge.service.lyric.LyricVMainPlanDMService;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
package com.sdm.outbridge.service.impl.lyric;
|
||||
|
||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||
import com.sdm.outbridge.dao.LyricVPdtDmMapper;
|
||||
import com.sdm.outbridge.secondDao.LyricVPdtDmMapper;
|
||||
import com.sdm.outbridge.entity.LyricVPdtToDM;
|
||||
import com.sdm.outbridge.service.lyric.LyricVPdtDmService;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
package com.sdm.outbridge.service.impl.lyric;
|
||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||
import com.sdm.outbridge.dao.LyricVProductionLineToDmMapper;
|
||||
import com.sdm.outbridge.secondDao.LyricVProductionLineToDmMapper;
|
||||
import com.sdm.outbridge.entity.LyricVProductionLineToDM;
|
||||
import com.sdm.outbridge.service.lyric.LyricVProductionLineToDmService;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
package com.sdm.outbridge.service.impl.lyric;
|
||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||
import com.sdm.outbridge.dao.LyricVProjectBatchToDMMapper;
|
||||
import com.sdm.outbridge.secondDao.LyricVProjectBatchToDMMapper;
|
||||
import com.sdm.outbridge.entity.LyricVProjectBatchToDM;
|
||||
import com.sdm.outbridge.service.lyric.LyricVProjectBatchToDmService;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
package com.sdm.outbridge.service.impl.lyric;
|
||||
|
||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||
import com.sdm.outbridge.dao.LyricVProjectResourcePlanDMMapper;
|
||||
import com.sdm.outbridge.secondDao.LyricVProjectResourcePlanDMMapper;
|
||||
import com.sdm.outbridge.entity.LyricVProjectResourcePlanDM;
|
||||
import com.sdm.outbridge.service.lyric.LyricVProjectResourcePlanDMService;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
@@ -1,10 +1,10 @@
|
||||
package com.sdm.outbridge.service.impl.lyric;
|
||||
|
||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||
import com.sdm.outbridge.dao.LyricVProjectStationExcepTionToDMMapper;
|
||||
import com.sdm.outbridge.entity.LyricVProjectStationExcepTionToDM;
|
||||
import com.sdm.outbridge.mode.SimulationTaskSyncExBo;
|
||||
import com.sdm.outbridge.service.lyric.LyricVProjectStationExcepTionToDMService;
|
||||
import com.sdm.outbridge.thirdDao.LyricVProjectStationExcepTionToDMMapper;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
package com.sdm.outbridge.service.impl.lyric;
|
||||
|
||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||
import com.sdm.outbridge.dao.LyricVProjectStationPlanToDmMapper;
|
||||
import com.sdm.outbridge.secondDao.LyricVProjectStationPlanToDmMapper;
|
||||
import com.sdm.outbridge.entity.LyricVProjectStationPlanToDM;
|
||||
import com.sdm.outbridge.service.lyric.LyricVProjectStationPlanToDmService;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
package com.sdm.outbridge.service.impl.lyric;
|
||||
|
||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||
import com.sdm.outbridge.dao.LyricVProjectStationToDmMapper;
|
||||
import com.sdm.outbridge.secondDao.LyricVProjectStationToDmMapper;
|
||||
import com.sdm.outbridge.entity.LyricVProjectStationToDM;
|
||||
import com.sdm.outbridge.service.lyric.LyricVProjectStationToDmService;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
package com.sdm.outbridge.service.impl.lyric;
|
||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||
import com.sdm.outbridge.dao.LyricVProjectToDmMapper;
|
||||
import com.sdm.outbridge.secondDao.LyricVProjectToDmMapper;
|
||||
import com.sdm.outbridge.entity.LyricVProjectToDM;
|
||||
import com.sdm.outbridge.service.lyric.LyricVProjectToDmService;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
package com.sdm.outbridge.service.impl.lyric;
|
||||
|
||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||
import com.sdm.outbridge.dao.LyricVTodoInfoMapper;
|
||||
import com.sdm.outbridge.secondDao.LyricVTodoInfoMapper;
|
||||
import com.sdm.outbridge.entity.LyricVTodoEmulationInfoDM;
|
||||
import com.sdm.outbridge.service.lyric.LyricVTodoInfoService;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
@@ -0,0 +1,12 @@
|
||||
package com.sdm.outbridge.thirdDao;
|
||||
|
||||
import org.apache.ibatis.annotations.Param;
|
||||
import org.apache.ibatis.annotations.Select;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
public interface DynamicSqlThirdExecutorMapper {
|
||||
@Select("${sql}") // 核心:用${sql}直接拼接传入的SQL字符串
|
||||
List<Map<String, Object>> executeThirdCustomSql(@Param("sql") String sql);
|
||||
}
|
||||
@@ -1,4 +1,4 @@
|
||||
package com.sdm.outbridge.dao;
|
||||
package com.sdm.outbridge.thirdDao;
|
||||
|
||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||
import com.sdm.outbridge.entity.LyricVProjectStationExcepTionToDM;
|
||||
@@ -8,7 +8,5 @@ import org.apache.ibatis.annotations.Param;
|
||||
import java.util.List;
|
||||
|
||||
public interface LyricVProjectStationExcepTionToDMMapper extends BaseMapper<LyricVProjectStationExcepTionToDM> {
|
||||
|
||||
List<LyricVProjectStationExcepTionToDM> queryExceptionsByProjectAndStation(@Param("list") List<SimulationTaskSyncExBo> list);
|
||||
|
||||
}
|
||||
}
|
||||
@@ -6,6 +6,12 @@ spring:
|
||||
# todo 生产地址
|
||||
jdbc-url: jdbc:mysql://127.0.0.1:13306/easy_project?useUnicode=true&characterEncoding=utf-8&useSSL=true&serverTimezone=Asia/Shanghai
|
||||
driver-class-name: com.mysql.cj.jdbc.Driver
|
||||
third:
|
||||
username: root
|
||||
password: mysql
|
||||
# todo 生产地址
|
||||
jdbc-url: jdbc:mysql://127.0.0.1:13306/easy_project?useUnicode=true&characterEncoding=utf-8&useSSL=true&serverTimezone=Asia/Shanghai
|
||||
driver-class-name: com.mysql.cj.jdbc.Driver
|
||||
|
||||
# 测试开发环境
|
||||
#appKey : 380ad3deb578424c9ca5178383f732c1
|
||||
|
||||
@@ -6,7 +6,12 @@ spring:
|
||||
# todo 生产地址
|
||||
jdbc-url: jdbc:mysql://127.0.0.1:13306/easy_project?useUnicode=true&characterEncoding=utf-8&useSSL=true&serverTimezone=Asia/Shanghai
|
||||
driver-class-name: com.mysql.cj.jdbc.Driver
|
||||
|
||||
third:
|
||||
username: root
|
||||
password: mysql
|
||||
# todo 生产地址
|
||||
jdbc-url: jdbc:mysql://127.0.0.1:13306/easy_project?useUnicode=true&characterEncoding=utf-8&useSSL=true&serverTimezone=Asia/Shanghai
|
||||
driver-class-name: com.mysql.cj.jdbc.Driver
|
||||
# 测试开发环境
|
||||
#appKey : 380ad3deb578424c9ca5178383f732c1
|
||||
#appSecret : 805c316f35024b8b9566ca67b4991c42
|
||||
|
||||
@@ -6,6 +6,12 @@ spring:
|
||||
# todo 生产地址
|
||||
jdbc-url: jdbc:mysql://127.0.0.1:13306/easy_project?useUnicode=true&characterEncoding=utf-8&useSSL=true&serverTimezone=Asia/Shanghai
|
||||
driver-class-name: com.mysql.cj.jdbc.Driver
|
||||
third:
|
||||
username: root
|
||||
password: mysql
|
||||
# todo 生产地址
|
||||
jdbc-url: jdbc:mysql://127.0.0.1:13306/easy_project?useUnicode=true&characterEncoding=utf-8&useSSL=true&serverTimezone=Asia/Shanghai
|
||||
driver-class-name: com.mysql.cj.jdbc.Driver
|
||||
|
||||
# 测试开发环境
|
||||
#appKey : 380ad3deb578424c9ca5178383f732c1
|
||||
|
||||
@@ -1,11 +1,17 @@
|
||||
spring:
|
||||
datasource:
|
||||
# todo 生产地址
|
||||
second:
|
||||
username: EP_DM
|
||||
password: ENC(c04rt9Z6Ygz024EU9eWvig==)
|
||||
# todo 生产地址
|
||||
jdbc-url: jdbc:mysql://10.122.48.11:13306/easy_project?useUnicode=true&characterEncoding=utf-8&useSSL=true&serverTimezone=Asia/Shanghai
|
||||
driver-class-name: com.mysql.cj.jdbc.Driver
|
||||
# todo 第三个数据源,生产ip不一样
|
||||
third:
|
||||
username: EP_DM
|
||||
password: ENC(c04rt9Z6Ygz024EU9eWvig==)
|
||||
jdbc-url: jdbc:mysql://10.122.48.11:13306/ecn?useUnicode=true&characterEncoding=utf-8&useSSL=true&serverTimezone=Asia/Shanghai
|
||||
driver-class-name: com.mysql.cj.jdbc.Driver
|
||||
|
||||
# 测试开发环境
|
||||
#appKey : 380ad3deb578424c9ca5178383f732c1
|
||||
|
||||
@@ -6,6 +6,13 @@ spring:
|
||||
# todo 生产地址
|
||||
jdbc-url: jdbc:mysql://127.0.0.1:13306/easy_project?useUnicode=true&characterEncoding=utf-8&useSSL=true&serverTimezone=Asia/Shanghai
|
||||
driver-class-name: com.mysql.cj.jdbc.Driver
|
||||
third:
|
||||
username: root
|
||||
password: mysql
|
||||
# todo 生产地址
|
||||
jdbc-url: jdbc:mysql://127.0.0.1:13306/easy_project?useUnicode=true&characterEncoding=utf-8&useSSL=true&serverTimezone=Asia/Shanghai
|
||||
driver-class-name: com.mysql.cj.jdbc.Driver
|
||||
|
||||
|
||||
# 测试开发环境
|
||||
#appKey : 380ad3deb578424c9ca5178383f732c1
|
||||
|
||||
@@ -6,6 +6,12 @@ spring:
|
||||
# todo 生产地址
|
||||
jdbc-url: jdbc:mysql://127.0.0.1:13306/easy_project?useUnicode=true&characterEncoding=utf-8&useSSL=true&serverTimezone=Asia/Shanghai
|
||||
driver-class-name: com.mysql.cj.jdbc.Driver
|
||||
third:
|
||||
username: root
|
||||
password: mysql
|
||||
# todo 生产地址
|
||||
jdbc-url: jdbc:mysql://127.0.0.1:13306/easy_project?useUnicode=true&characterEncoding=utf-8&useSSL=true&serverTimezone=Asia/Shanghai
|
||||
driver-class-name: com.mysql.cj.jdbc.Driver
|
||||
|
||||
# 测试开发环境
|
||||
#appKey : 380ad3deb578424c9ca5178383f732c1
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
||||
<mapper namespace="com.sdm.outbridge.dao.LyricVProjectStationExcepTionToDMMapper">
|
||||
<mapper namespace="com.sdm.outbridge.thirdDao.LyricVProjectStationExcepTionToDMMapper">
|
||||
|
||||
<select id="queryExceptionsByProjectAndStation"
|
||||
resultType="com.sdm.outbridge.entity.LyricVProjectStationExcepTionToDM">
|
||||
@@ -7,6 +7,7 @@ import com.sdm.outbridge.mode.GetProcessDataReq;
|
||||
import com.sdm.outbridge.mode.HkUploadFileReq;
|
||||
import com.sdm.outbridge.service.lyric.*;
|
||||
import com.sdm.pbs.service.lyricDbMock.DynamicSqlExecutor;
|
||||
import com.sdm.pbs.service.lyricDbMock.DynamicSqlThirdExecutor;
|
||||
import io.swagger.v3.oas.annotations.Operation;
|
||||
import io.swagger.v3.oas.annotations.tags.Tag;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
@@ -50,7 +51,8 @@ public class TestSecondDbController {
|
||||
@Autowired
|
||||
private DynamicSqlExecutor dynamicSqlExecutor;
|
||||
|
||||
|
||||
@Autowired
|
||||
private DynamicSqlThirdExecutor dynamicSqlThirdExecutor;
|
||||
|
||||
|
||||
|
||||
@@ -234,8 +236,8 @@ public class TestSecondDbController {
|
||||
* 执行查询SQL接口
|
||||
* @return SQL执行结果
|
||||
*/
|
||||
@PostMapping("/mockSql")
|
||||
public SdmResponse<List<Map<String, Object>>> executeSql(@RequestBody Map paramMap) {
|
||||
@PostMapping("/mockSecondSql")
|
||||
public SdmResponse<List<Map<String, Object>>> mockSecondSql(@RequestBody Map paramMap) {
|
||||
try {
|
||||
String sql = paramMap.get("sql").toString().trim();
|
||||
// 安全校验:禁止执行危险SQL(生产环境必须加!)
|
||||
@@ -247,6 +249,20 @@ public class TestSecondDbController {
|
||||
}
|
||||
}
|
||||
|
||||
@PostMapping("/mockThirdSql")
|
||||
public SdmResponse<List<Map<String, Object>>> mockThirdSql(@RequestBody Map paramMap) {
|
||||
try {
|
||||
String sql = paramMap.get("sql").toString().trim();
|
||||
// 安全校验:禁止执行危险SQL(生产环境必须加!)
|
||||
validateSql(sql);
|
||||
List<Map<String, Object>> result = dynamicSqlThirdExecutor.executeQuery(sql);
|
||||
return SdmResponse.success( result);
|
||||
} catch (Exception e) {
|
||||
return SdmResponse.failed("执行失败: " + e.getMessage());
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* SQL安全校验(生产环境必须实现)
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
package com.sdm.pbs.service.lyricDbMock;
|
||||
|
||||
import com.sdm.outbridge.dao.DynamicSqlExecutorMapper;
|
||||
import com.sdm.outbridge.secondDao.DynamicSqlExecutorMapper;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Component;
|
||||
|
||||
@@ -0,0 +1,41 @@
|
||||
package com.sdm.pbs.service.lyricDbMock;
|
||||
|
||||
import com.sdm.outbridge.thirdDao.DynamicSqlThirdExecutorMapper;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Component;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
/**
|
||||
* 动态SQL执行工具类(适配多数据源)
|
||||
*/
|
||||
@Component
|
||||
@Slf4j
|
||||
public class DynamicSqlThirdExecutor {
|
||||
|
||||
// 注入纯注解版Mapper接口(多数据源需加@Qualifier指定)
|
||||
@Autowired
|
||||
private DynamicSqlThirdExecutorMapper dynamicSqlThirdExecutorMapper;
|
||||
|
||||
/**
|
||||
* 执行查询SQL,返回List<Map>(通用格式)
|
||||
* 关键修复2:直接使用SqlSessionTemplate的selectList方法(无需获取原生SqlSession)
|
||||
*/
|
||||
public List<Map<String, Object>> executeQuery(String sql) {
|
||||
try {
|
||||
long start = System.currentTimeMillis();
|
||||
// MyBatis执行动态SQL的通用方式:使用STATEMENT类型执行原生SQL
|
||||
List<Map<String, Object>> maps = dynamicSqlThirdExecutorMapper.executeThirdCustomSql(sql);
|
||||
long end = System.currentTimeMillis();
|
||||
log.info("mockThirdSql:{},本次查询返回:{}条,耗时:{} s",sql,maps.size(),(end - start)/1000);
|
||||
return maps;
|
||||
} catch (Exception e) {
|
||||
log.error("执行动态SQL失败{}", e.getMessage());
|
||||
e.printStackTrace();
|
||||
throw new RuntimeException("执行SQL出错: " + e.getMessage(), e);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
@@ -158,6 +158,8 @@ security:
|
||||
- /getProductLine
|
||||
- /getProjectBatch
|
||||
- /getProjectInfo
|
||||
- /mockSecondSql
|
||||
- /mockThirdSql
|
||||
|
||||
# xxljob 配置开始
|
||||
xxl:
|
||||
|
||||
Reference in New Issue
Block a user