多数据源集成

docus-active-query-service_1.3
lzy 4 years ago
parent f1c400adb6
commit 9c565e505d

@ -125,6 +125,18 @@
<artifactId>cxf-rt-transports-http</artifactId>
<version>3.1.8</version>
</dependency>
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>druid-spring-boot-starter</artifactId>
<version>1.1.10</version>
</dependency>
<!-- https://mvnrepository.com/artifact/com.oracle.jdbc/ojdbc7 -->
<!-- https://mvnrepository.com/artifact/com.oracle.database.jdbc/ojdbc6 -->
<dependency>
<groupId>com.oracle.database.jdbc</groupId>
<artifactId>ojdbc6</artifactId>
<version>11.2.0.4</version>
</dependency>
<dependency>
<groupId>org.apache.cxf</groupId>
<artifactId>cxf-rt-frontend-jaxws</artifactId>

@ -1,11 +1,12 @@
package com.docus.bgts;
import com.baomidou.mybatisplus.autoconfigure.MybatisPlusAutoConfiguration;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.scheduling.annotation.EnableScheduling;
@EnableScheduling
@SpringBootApplication
@SpringBootApplication(exclude = {MybatisPlusAutoConfiguration.class})
public class DemoApplication {
public static void main(String[] args) {

@ -0,0 +1,66 @@
package com.docus.bgts.config;
import com.alibaba.druid.pool.DruidDataSource;
import com.baomidou.mybatisplus.core.MybatisConfiguration;
import com.baomidou.mybatisplus.extension.spring.MybatisSqlSessionFactoryBean;
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.ibatis.type.JdbcType;
import org.mybatis.spring.SqlSessionFactoryBean;
import org.mybatis.spring.annotation.MapperScan;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.core.io.support.PathMatchingResourcePatternResolver;
import org.springframework.core.io.support.ResourcePatternResolver;
import org.springframework.jdbc.datasource.DataSourceTransactionManager;
import javax.sql.DataSource;
@Configuration
@MapperScan(basePackages = DbMysqlConfig.PACKAGE, sqlSessionFactoryRef = "dbmysqlSqlSessionFactory")
public class DbMysqlConfig {
// 这里一定要指定精准 否则后果不堪设想
static final String PACKAGE = "com.docus.bgts.mapper.dbmysql";
static final String MAPPER_LOCATION = "classpath:mapper/dbmysql/*.xml";
@Bean(name = "dbmysqlDataSource")
@ConfigurationProperties(prefix = "spring.datasource.mysql-docus")
public DataSource secondDataSource(){
return new DruidDataSource();
}
/*注入事务*/
@Bean(name = "dbmysqlTransactionManager")
public DataSourceTransactionManager secondTransactionManager() {
return new DataSourceTransactionManager(secondDataSource());
}
@Bean(name = "dbmysqlSqlSessionFactory")
public SqlSessionFactory secondSqlSessionFactory(@Qualifier("dbmysqlDataSource") DataSource dataSource)
throws Exception {
//配置mybatis-plus源
MybatisSqlSessionFactoryBean bean = new MybatisSqlSessionFactoryBean ();
//添加XML目录
ResourcePatternResolver resolver = new PathMatchingResourcePatternResolver();
bean.setMapperLocations(resolver.getResources(MAPPER_LOCATION));
// 实体类别名
bean.setTypeAliasesPackage("com.docus.bgts.entity.*");
MybatisConfiguration configuration = new MybatisConfiguration();
//开启下划线转驼峰
configuration.setMapUnderscoreToCamelCase(true);
configuration.setJdbcTypeForNull(JdbcType.NULL);
bean.setDataSource(dataSource);
bean.setConfiguration(configuration);
return bean.getObject();
//
// final SqlSessionFactoryBean sessionFactory = new SqlSessionFactoryBean();
// sessionFactory.setDataSource(secondDataSource);
// sessionFactory.setMapperLocations(new PathMatchingResourcePatternResolver()
// .getResources(DbMysqlConfig.MAPPER_LOCATION));
// return sessionFactory.getObject();
}
}

@ -0,0 +1,45 @@
package com.docus.bgts.config;
import com.alibaba.druid.pool.DruidDataSource;
import org.apache.ibatis.session.SqlSessionFactory;
import org.mybatis.spring.SqlSessionFactoryBean;
import org.mybatis.spring.annotation.MapperScan;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.core.io.support.PathMatchingResourcePatternResolver;
import org.springframework.jdbc.datasource.DataSourceTransactionManager;
import javax.sql.DataSource;
@Configuration
@MapperScan(basePackages = DbOracleConfig.PACKAGE, sqlSessionFactoryRef = "dboracleSqlSessionFactory")
public class DbOracleConfig {
// 这里一定要指定精准 否则后果不堪设想
static final String PACKAGE = "com.docus.bgts.mapper.dboracle";
static final String MAPPER_LOCATION = "classpath:mapper/dboracle/*.xml";
@Bean(name = "dboracleDataSource")
@ConfigurationProperties(prefix = "spring.datasource.oracle-docus")
public DataSource secondDataSource(){
return new DruidDataSource();
}
/*注入事务*/
@Bean(name = "dboracleTransactionManager")
public DataSourceTransactionManager secondTransactionManager() {
return new DataSourceTransactionManager(secondDataSource());
}
@Bean(name = "dboracleSqlSessionFactory")
public SqlSessionFactory secondSqlSessionFactory(@Qualifier("dboracleDataSource") DataSource secondDataSource)
throws Exception {
final SqlSessionFactoryBean sessionFactory = new SqlSessionFactoryBean();
sessionFactory.setDataSource(secondDataSource);
sessionFactory.setMapperLocations(new PathMatchingResourcePatternResolver()
.getResources(DbOracleConfig.MAPPER_LOCATION));
return sessionFactory.getObject();
}
}

@ -17,50 +17,50 @@ import org.springframework.transaction.annotation.EnableTransactionManagement;
import javax.annotation.PostConstruct;
import java.util.Objects;
@Configuration
@RequiredArgsConstructor
@EnableTransactionManagement
@MapperScan("com.docus.bgts.mapper")
@ConditionalOnClass(value = {PaginationInterceptor.class})
public class MybatisPlusConfig {
private final MybatisPlusProperties mybatisPlusProperties;
@Bean
public PaginationInterceptor paginationInterceptor() {
PaginationInterceptor paginationInterceptor = new PaginationInterceptor();
return paginationInterceptor;
}
@PostConstruct
public void initMybatisConfig(){
mybatisPlusProperties.setMapperLocations(new String[]{"classpath*:/mapper/*Mapper.xml"});
mybatisPlusProperties.setTypeAliasesPackage("com.docus.bgts.entity");
MybatisConfiguration configuration = mybatisPlusProperties.getConfiguration();
if(Objects.isNull(configuration)){
configuration=new MybatisConfiguration();
}
configuration.setMapUnderscoreToCamelCase(true);
configuration.setCacheEnabled(true);
configuration.setLogImpl(NoLoggingImpl.class);
mybatisPlusProperties.setConfiguration(configuration);
var globalConfig = mybatisPlusProperties.getGlobalConfig();
if(Objects.isNull(globalConfig)){
globalConfig=new GlobalConfig();
}
GlobalConfig.DbConfig dbConfig = globalConfig.getDbConfig();
if(Objects.isNull(dbConfig)){
dbConfig=new GlobalConfig.DbConfig();
}
configuration.setCallSettersOnNulls(true);
dbConfig.setIdType(IdType.ASSIGN_ID);
dbConfig.setTableUnderline(true);
dbConfig.setLogicDeleteValue("1");
dbConfig.setLogicNotDeleteValue("0");
dbConfig.setLogicDeleteField("def_flag");
globalConfig.setDbConfig(dbConfig);
globalConfig.setBanner(false);
}
}
//@Configuration
//@RequiredArgsConstructor
//@EnableTransactionManagement
//@MapperScan("com.docus.bgts.mapper")
//@ConditionalOnClass(value = {PaginationInterceptor.class})
//public class MybatisPlusConfig {
//
//
// private final MybatisPlusProperties mybatisPlusProperties;
// @Bean
// public PaginationInterceptor paginationInterceptor() {
// PaginationInterceptor paginationInterceptor = new PaginationInterceptor();
// return paginationInterceptor;
// }
//
// @PostConstruct
// public void initMybatisConfig(){
// mybatisPlusProperties.setMapperLocations(new String[]{"classpath*:/mapper/*Mapper.xml"});
// mybatisPlusProperties.setTypeAliasesPackage("com.docus.bgts.entity");
//
// MybatisConfiguration configuration = mybatisPlusProperties.getConfiguration();
// if(Objects.isNull(configuration)){
// configuration=new MybatisConfiguration();
// }
// configuration.setMapUnderscoreToCamelCase(true);
// configuration.setCacheEnabled(true);
// configuration.setLogImpl(NoLoggingImpl.class);
// mybatisPlusProperties.setConfiguration(configuration);
//
// var globalConfig = mybatisPlusProperties.getGlobalConfig();
// if(Objects.isNull(globalConfig)){
// globalConfig=new GlobalConfig();
// }
// GlobalConfig.DbConfig dbConfig = globalConfig.getDbConfig();
// if(Objects.isNull(dbConfig)){
// dbConfig=new GlobalConfig.DbConfig();
// }
// configuration.setCallSettersOnNulls(true);
// dbConfig.setIdType(IdType.ASSIGN_ID);
// dbConfig.setTableUnderline(true);
// dbConfig.setLogicDeleteValue("1");
// dbConfig.setLogicNotDeleteValue("0");
// dbConfig.setLogicDeleteField("def_flag");
// globalConfig.setDbConfig(dbConfig);
// globalConfig.setBanner(false);
// }
//}

@ -29,6 +29,11 @@ public class BgtsController {
@Autowired
IAfCollectTaskService afCollectTaskService;
@GetMapping("/test1")
public String test1(){
return afCollectTaskService.getA();
}
@ApiOperation("采集接口")
@ApiImplicitParams({
@ApiImplicitParam(name = "empId",value = "患者主索引号",required = true,dataTypeClass = String.class),

@ -0,0 +1,4 @@
package com.docus.bgts.entity;
public class VDocumentPdf {
}

@ -22,4 +22,6 @@ public interface IAfCollectTaskService extends IService<AfCollectTask> {
void insert(ReportDownDto reportDownDto);
void updateInterfaceCollect(String collectSubId, int state);
String getA();
}

@ -1,4 +1,4 @@
package com.docus.bgts.mapper;
package com.docus.bgts.mapper.dbmysql;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;

@ -1,4 +1,4 @@
package com.docus.bgts.mapper;
package com.docus.bgts.mapper.dbmysql;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.docus.bgts.entity.AfInterfaceCollect;

@ -1,4 +1,4 @@
package com.docus.bgts.mapper;
package com.docus.bgts.mapper.dbmysql;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.docus.bgts.entity.AfInterfaceCollectSub;

@ -0,0 +1,8 @@
package com.docus.bgts.mapper.dboracle;
import java.util.List;
public interface TestMapper {
List<String> getA();
}

@ -5,14 +5,16 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.docus.bgts.entity.*;
import com.docus.bgts.facade.IAfCollectTaskService;
import com.docus.bgts.mapper.AfCollectTaskMapper;
import com.docus.bgts.mapper.AfInterfaceCollectMapper;
import com.docus.bgts.mapper.AfInterfaceCollectSubMapper;
import com.docus.bgts.mapper.dbmysql.AfCollectTaskMapper;
import com.docus.bgts.mapper.dbmysql.AfInterfaceCollectMapper;
import com.docus.bgts.mapper.dbmysql.AfInterfaceCollectSubMapper;
import com.docus.bgts.mapper.dboracle.TestMapper;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.util.Arrays;
import java.util.Date;
import java.util.List;
@ -27,6 +29,9 @@ import java.util.List;
@Service
public class AfCollectTaskServiceImpl extends ServiceImpl<AfCollectTaskMapper, AfCollectTask> implements IAfCollectTaskService {
@Autowired
TestMapper testMapper;
@Autowired
AfCollectTaskMapper afCollectTaskMapper;
@ -108,4 +113,12 @@ public class AfCollectTaskServiceImpl extends ServiceImpl<AfCollectTaskMapper, A
}
@Override
public String getA() {
System.out.println(afCollectTaskMapper.getpatientIdByEmpId("5555566666"));
System.out.println(afCollectTaskMapper.selectList(new QueryWrapper<>()));
List<String> a = testMapper.getA();
return Arrays.asList(a).toString();
}
}

@ -20,7 +20,13 @@ ws:
spring:
datasource:
driver-class-name: com.mysql.cj.jdbc.Driver
username: docus
password: docus702
url: jdbc:mysql://db.docus.cn:3306/docus_archivefile?characterEncoding=utf8&useSSL=false&serverTimezone=UTC&rewriteBatchedStatements=true
mysql-docus:
driver-class-name: com.mysql.cj.jdbc.Driver
username: docus
password: docus702
url: jdbc:mysql://db.docus.cn:3306/docus_archivefile?characterEncoding=utf8&useSSL=false&serverTimezone=UTC&rewriteBatchedStatements=true
oracle-docus:
driver-class-name: oracle.jdbc.driver.OracleDriver
url: jdbc:oracle:thin:@192.168.117.100:1521:helowin
username: docus
password: docus702

@ -2,7 +2,7 @@
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.docus.bgts.mapper.AfCollectTaskMapper">
<mapper namespace="com.docus.bgts.mapper.dbmysql.AfCollectTaskMapper">
<select id="getpatientIdByEmpId" resultType="string">
select patient_id
from docus_medicalrecord.t_basic

@ -0,0 +1,10 @@
<?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.docus.bgts.mapper.dboracle.TestMapper">
<select id="getA" resultType="string">
SELECT "DOCUS"."student"."id" FROM "DOCUS"."student"
</select>
</mapper>
Loading…
Cancel
Save