diff --git a/pom.xml b/pom.xml
index 421bc8a..026bcf4 100644
--- a/pom.xml
+++ b/pom.xml
@@ -47,9 +47,16 @@
org.springframework.boot
spring-boot-starter-web
+
- com.docus
- docus-mybatisplus-starter
+ com.baomidou
+ mybatis-plus-boot-starter
+ 3.4.0
+
+
+ com.baomidou
+ dynamic-datasource-spring-boot-starter
+ 3.4.0
diff --git a/src/main/java/com/docus/server/message/controller/DynamicDatasourceTestController.java b/src/main/java/com/docus/server/message/controller/DynamicDatasourceTestController.java
new file mode 100644
index 0000000..324ec7f
--- /dev/null
+++ b/src/main/java/com/docus/server/message/controller/DynamicDatasourceTestController.java
@@ -0,0 +1,37 @@
+package com.docus.server.message.controller;
+
+import com.docus.server.message.mapper.SdRyIcuMapper;
+import com.docus.server.message.mapper.TBasicMapper;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+
+import java.util.HashMap;
+
+/**
+ * @author WYBDEV
+ */
+@Api("多数据源测试")
+@RestController
+@Slf4j
+@RequestMapping("/dynamic/test")
+public class DynamicDatasourceTestController {
+ @Autowired
+ TBasicMapper tBasicMapper;
+ @Autowired
+ SdRyIcuMapper sdRyIcuMapper;
+
+
+ @ApiOperation("根据病案主键")
+ @GetMapping("/getPatient")
+ public Object getPatient(@RequestParam("patientId") String patientId,@RequestParam("db")String db){
+ HashMap stringObjectHashMap = new HashMap<>();
+
+ stringObjectHashMap.put(sdRyIcuMapper.getClass().getName(), sdRyIcuMapper.getById(patientId));
+ stringObjectHashMap.put( tBasicMapper.getClass().getName(),tBasicMapper.getDischargeCount(patientId));
+ return stringObjectHashMap;
+ }
+
+}
diff --git a/src/main/java/com/docus/server/message/mapper/SdRyIcuMapper.java b/src/main/java/com/docus/server/message/mapper/SdRyIcuMapper.java
new file mode 100644
index 0000000..c757b56
--- /dev/null
+++ b/src/main/java/com/docus/server/message/mapper/SdRyIcuMapper.java
@@ -0,0 +1,13 @@
+package com.docus.server.message.mapper;
+
+import com.baomidou.dynamic.datasource.annotation.DS;
+import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.Map;
+
+@DS("icu")
+@Mapper
+public interface SdRyIcuMapper {
+ Map getById(@Param("id") String patientId);
+}
diff --git a/src/main/java/com/docus/server/message/mapper/TBasicMapper.java b/src/main/java/com/docus/server/message/mapper/TBasicMapper.java
index 495e2d7..8205982 100644
--- a/src/main/java/com/docus/server/message/mapper/TBasicMapper.java
+++ b/src/main/java/com/docus/server/message/mapper/TBasicMapper.java
@@ -1,12 +1,13 @@
package com.docus.server.message.mapper;
+import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import java.util.Date;
import java.util.List;
-
+@Mapper
public interface TBasicMapper {
List getPatientIdsByInpatientNoAndTimes(@Param("inpatientNo") String inHospIndexNo, @Param("admissTimes") Integer visitNo);
diff --git a/src/main/resources/bootstrap.yml b/src/main/resources/bootstrap.yml
index 5c7608c..b0139be 100644
--- a/src/main/resources/bootstrap.yml
+++ b/src/main/resources/bootstrap.yml
@@ -6,27 +6,54 @@ spring:
profiles:
active: test
datasource:
- url: jdbc:log4jdbc:mysql://db.docus.cn:3306/docus_medicalrecord?autoReconnect=true&allowMultiQueries=true&useSSL=false&useUnicode=true&characterEncoding=utf-8&serverTimezone=Asia/Shanghai
- username: docus
- password: docus702
- driver-class-name: net.sf.log4jdbc.sql.jdbcapi.DriverSpy
- type: com.alibaba.druid.pool.DruidDataSource
- # 初始化配置
- initial-size: 3
- # 最小连接数
- min-idle: 3
- # 最大连接数
- max-active: 15
- # 获取连接超 时时间
- max-wait: 5000
- # 连接有效性检测时间
- time-between-eviction-runs-millis: 90000
- # 最大空闲时间
- min-evictable-idle-time-millis: 1800000
- test-while-idle: true
- test-on-borrow: false
- test-on-return: false
- validation-query: select 1
+ dynamic:
+ primary: master #设置默认的数据源,默认值为master
+ strict: false #是否用严格模式,如果启用在味匹配到指定数据源时抛出异常
+ datasource:
+ master:
+ url: jdbc:log4jdbc:mysql://db.docus.cn:3306/docus_medicalrecord?autoReconnect=true&allowMultiQueries=true&useSSL=false&useUnicode=true&characterEncoding=utf-8&serverTimezone=Asia/Shanghai
+ username: docus
+ password: docus702
+ driver-class-name: net.sf.log4jdbc.sql.jdbcapi.DriverSpy
+ type: com.alibaba.druid.pool.DruidDataSource
+ # 初始化配置
+ initial-size: 3
+ # 最小连接数
+ min-idle: 3
+ # 最大连接数
+ max-active: 15
+ # 获取连接超 时时间
+ max-wait: 5000
+ # 连接有效性检测时间
+ time-between-eviction-runs-millis: 90000
+ # 最大空闲时间
+ min-evictable-idle-time-millis: 1800000
+ test-while-idle: true
+ test-on-borrow: false
+ test-on-return: false
+ validation-query: select 1
+ icu:
+ url: jdbc:log4jdbc:mysql://192.168.31.233:3306/docus_medicalrecord?autoReconnect=true&allowMultiQueries=true&useSSL=false&useUnicode=true&characterEncoding=utf-8&serverTimezone=Asia/Shanghai
+ username: docus
+ password: docus702
+ driver-class-name: net.sf.log4jdbc.sql.jdbcapi.DriverSpy
+ type: com.alibaba.druid.pool.DruidDataSource
+ # 初始化配置
+ initial-size: 3
+ # 最小连接数
+ min-idle: 3
+ # 最大连接数
+ max-active: 15
+ # 获取连接超 时时间
+ max-wait: 5000
+ # 连接有效性检测时间
+ time-between-eviction-runs-millis: 90000
+ # 最大空闲时间
+ min-evictable-idle-time-millis: 1800000
+ test-while-idle: true
+ test-on-borrow: false
+ test-on-return: false
+ validation-query: select 1
redis:
host: redis.docus.cn
diff --git a/src/main/resources/mapper/SdRyIcuMapper.xml b/src/main/resources/mapper/SdRyIcuMapper.xml
new file mode 100644
index 0000000..25fbfbf
--- /dev/null
+++ b/src/main/resources/mapper/SdRyIcuMapper.xml
@@ -0,0 +1,12 @@
+
+
+
+
+
+