From 388d6f10a3914c467c287f0ad9cb840a375c713e Mon Sep 17 00:00:00 2001 From: wyb <1977763549@qq.com> Date: Fri, 18 Aug 2023 22:10:50 +0800 Subject: [PATCH] =?UTF-8?q?=E5=8E=BB=E6=8E=89docus=E5=B0=81=E8=A3=85?= =?UTF-8?q?=E7=9A=84mybatisplus=EF=BC=8Cdruid=E6=95=B0=E6=8D=AE=E6=BA=90?= =?UTF-8?q?=EF=BC=8C=E4=BD=BF=E7=94=A8=E5=A4=9A=E6=95=B0=E6=8D=AE=E6=BA=90?= =?UTF-8?q?DS?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- pom.xml | 11 ++- .../DynamicDatasourceTestController.java | 37 ++++++++++ .../server/message/mapper/SdRyIcuMapper.java | 13 ++++ .../server/message/mapper/TBasicMapper.java | 3 +- src/main/resources/bootstrap.yml | 69 +++++++++++++------ src/main/resources/mapper/SdRyIcuMapper.xml | 12 ++++ 6 files changed, 121 insertions(+), 24 deletions(-) create mode 100644 src/main/java/com/docus/server/message/controller/DynamicDatasourceTestController.java create mode 100644 src/main/java/com/docus/server/message/mapper/SdRyIcuMapper.java create mode 100644 src/main/resources/mapper/SdRyIcuMapper.xml 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 @@ + + + + + +