From 423cc032c053d6d153f579a803500a471d89910e Mon Sep 17 00:00:00 2001
From: liusuyi <13324259@qq.com>
Date: Sun, 17 Sep 2023 23:41:55 +0800
Subject: [PATCH] 增加多数据源
---
src/main/java/com/ard/alarm/camera/mapper/ArdCamerasMapper.java | 2
src/main/java/com/ard/config/DruidConfig.java | 14 +-
src/main/java/com/ard/alarm/apponekey/controller/ArdAlarmApponekeyController.java | 1
src/main/java/com/ard/alarm/stealelec/service/StealElecAlarmService.java | 2
src/main/java/com/ard/alarm/external/mapper/ArdEquipExternalMapper.java | 2
src/main/resources/GeneratorMapper.xml | 57 +++++++++++
src/main/resources/application-dev.yml | 113 +++++++++++++++++-----
src/main/java/com/ard/alarm/radar/mapper/ArdEquipRadarMapper.java | 2
pom.xml | 24 ++++
src/main/resources/application.yml | 2
src/main/java/com/ard/alarm/digitization/controller/DatabridgeController.java | 30 ++++++
11 files changed, 215 insertions(+), 34 deletions(-)
diff --git a/pom.xml b/pom.xml
index 419f554..42e4c7d 100644
--- a/pom.xml
+++ b/pom.xml
@@ -65,6 +65,13 @@
<artifactId>mybatis-spring-boot-starter</artifactId>
<version>2.2.2</version>
</dependency>
+ <!--Oracle jdbc-->
+ <!--这里注意,某些ojdbc的版本不支持jdk1.8,遇到过,网上说这个ojdbc8支持,所以这里使用它-->
+ <dependency>
+ <groupId>com.oracle.ojdbc</groupId>
+ <artifactId>ojdbc8</artifactId>
+ <version>19.3.0.0</version>
+ </dependency>
<!--minio依赖-->
<dependency>
<groupId>io.minio</groupId>
@@ -86,6 +93,12 @@
<groupId>com.alibaba</groupId>
<artifactId>druid-spring-boot-starter</artifactId>
<version>1.2.14</version>
+ </dependency>
+ <!-- 动态数据源 -->
+ <dependency>
+ <groupId>com.baomidou</groupId>
+ <artifactId>dynamic-datasource-spring-boot-starter</artifactId>
+ <version>3.5.0</version>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
@@ -124,6 +137,17 @@
</buildArgs>
</configuration>
</plugin>
+ <plugin>
+ <groupId>org.mybatis.generator</groupId>
+ <artifactId>mybatis-generator-maven-plugin</artifactId>
+ <version>1.4.1</version>
+ <configuration>
+ <!--配置文件位置-->
+ <configurationFile>src/main/resources/GeneratorMapper.xml</configurationFile>
+ <verbose>true</verbose>
+ <overwrite>true</overwrite>
+ </configuration>
+ </plugin>
</plugins>
</build>
diff --git a/src/main/java/com/ard/alarm/apponekey/controller/ArdAlarmApponekeyController.java b/src/main/java/com/ard/alarm/apponekey/controller/ArdAlarmApponekeyController.java
index d01aafb..9ea97ee 100644
--- a/src/main/java/com/ard/alarm/apponekey/controller/ArdAlarmApponekeyController.java
+++ b/src/main/java/com/ard/alarm/apponekey/controller/ArdAlarmApponekeyController.java
@@ -20,6 +20,7 @@
public class ArdAlarmApponekeyController {
@Resource
private IArdAlarmApponekeyService ardAlarmApponekeyService;
+
/**
* 新增app一键报警
*/
diff --git a/src/main/java/com/ard/alarm/camera/mapper/ArdCamerasMapper.java b/src/main/java/com/ard/alarm/camera/mapper/ArdCamerasMapper.java
index c75f1df..dfc62dc 100644
--- a/src/main/java/com/ard/alarm/camera/mapper/ArdCamerasMapper.java
+++ b/src/main/java/com/ard/alarm/camera/mapper/ArdCamerasMapper.java
@@ -2,6 +2,7 @@
import java.util.List;
import com.ard.alarm.camera.domain.ArdCameras;
+import com.baomidou.dynamic.datasource.annotation.DS;
import org.apache.ibatis.annotations.Mapper;
/**
@@ -11,6 +12,7 @@
* @date 2023-02-11
*/
@Mapper
+@DS("postgres")
public interface ArdCamerasMapper
{
/**
diff --git a/src/main/java/com/ard/alarm/digitization/controller/DatabridgeController.java b/src/main/java/com/ard/alarm/digitization/controller/DatabridgeController.java
new file mode 100644
index 0000000..24ab6da
--- /dev/null
+++ b/src/main/java/com/ard/alarm/digitization/controller/DatabridgeController.java
@@ -0,0 +1,30 @@
+package com.ard.alarm.digitization.controller;
+
+import com.ard.alarm.digitization.mapper.DatabridgeMapper;
+import com.ard.alarm.digitization.model.Databridge;
+import com.ard.utils.http.AjaxResult;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+import javax.annotation.Resource;
+
+/**
+ * @ClassName DatabridgeController
+ * @Description:
+ * @Author 刘苏义
+ * @Date 2023/9/17 23:11
+ * @Version 1.0
+ */
+@RestController
+@RequestMapping("/alarm/digitization")
+public class DatabridgeController {
+
+ @Resource
+ DatabridgeMapper databridgeMapper;
+
+
+ @GetMapping("/list")
+ public AjaxResult list(Databridge databridge) {
+ return AjaxResult.success(databridgeMapper.selectDatabridgeList(databridge));
+ }
+}
diff --git a/src/main/java/com/ard/alarm/external/mapper/ArdEquipExternalMapper.java b/src/main/java/com/ard/alarm/external/mapper/ArdEquipExternalMapper.java
index e5b3a23..ddca367 100644
--- a/src/main/java/com/ard/alarm/external/mapper/ArdEquipExternalMapper.java
+++ b/src/main/java/com/ard/alarm/external/mapper/ArdEquipExternalMapper.java
@@ -2,6 +2,7 @@
import java.util.List;
import com.ard.alarm.external.domain.ArdEquipExternal;
+import com.baomidou.dynamic.datasource.annotation.DS;
import org.apache.ibatis.annotations.Mapper;
@@ -12,6 +13,7 @@
* @date 2023-03-13
*/
@Mapper
+@DS("postgres")
public interface ArdEquipExternalMapper
{
/**
diff --git a/src/main/java/com/ard/alarm/radar/mapper/ArdEquipRadarMapper.java b/src/main/java/com/ard/alarm/radar/mapper/ArdEquipRadarMapper.java
index 2d5755c..86f93d9 100644
--- a/src/main/java/com/ard/alarm/radar/mapper/ArdEquipRadarMapper.java
+++ b/src/main/java/com/ard/alarm/radar/mapper/ArdEquipRadarMapper.java
@@ -2,6 +2,7 @@
import java.util.List;
import com.ard.alarm.radar.domain.ArdEquipRadar;
+import com.baomidou.dynamic.datasource.annotation.DS;
import org.apache.ibatis.annotations.Mapper;
/**
@@ -11,6 +12,7 @@
* @date 2023-03-11
*/
@Mapper
+@DS("postgres")
public interface ArdEquipRadarMapper
{
/**
diff --git a/src/main/java/com/ard/alarm/stealelec/service/StealElecAlarmService.java b/src/main/java/com/ard/alarm/stealelec/service/StealElecAlarmService.java
index 7208846..1cc832e 100644
--- a/src/main/java/com/ard/alarm/stealelec/service/StealElecAlarmService.java
+++ b/src/main/java/com/ard/alarm/stealelec/service/StealElecAlarmService.java
@@ -39,7 +39,7 @@
* @修改人和其它信息
*/
@Async("alarm")
- @Scheduled(cron="0/5 * * * * ?")
+ // @Scheduled(cron="0/5 * * * * ?")
public void alarmHandler() {
try {
String allAlarmData = restTemplate.getForObject(stealElecUrl, String.class);
diff --git a/src/main/java/com/ard/config/DruidConfig.java b/src/main/java/com/ard/config/DruidConfig.java
index d1df6c6..70619ee 100644
--- a/src/main/java/com/ard/config/DruidConfig.java
+++ b/src/main/java/com/ard/config/DruidConfig.java
@@ -15,17 +15,17 @@
* @Date: 2023年07月04日15:29
* @Version: 1.0
**/
-@Configuration
+
public class DruidConfig {
//这个注解读取配置文件前缀为prefix的配置,将外部的配置文件与这里绑定
@ConfigurationProperties(prefix = "spring.datasource.druid")
//容器的开启与关闭
- @Bean(initMethod = "init",destroyMethod = "close")
- public DruidDataSource dataSource(){
- DruidDataSource dataSource=new DruidDataSource();
- dataSource.setProxyFilters(Lists.newArrayList(statFilter()));
- return dataSource;
- }
+// @Bean(initMethod = "init",destroyMethod = "close")
+// public DruidDataSource dataSource(){
+// DruidDataSource dataSource=new DruidDataSource();
+// dataSource.setProxyFilters(Lists.newArrayList(statFilter()));
+// return dataSource;
+// }
//bean注解,成为spring的bean,利用filter将慢sql的日志打印出来
@Bean
public Filter statFilter(){
diff --git a/src/main/resources/GeneratorMapper.xml b/src/main/resources/GeneratorMapper.xml
new file mode 100644
index 0000000..7ed6e9f
--- /dev/null
+++ b/src/main/resources/GeneratorMapper.xml
@@ -0,0 +1,57 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE generatorConfiguration
+ PUBLIC "-//mybatis.org//DTD MyBatis Generator Configuration 1.0//EN"
+ "http://mybatis.org/dtd/mybatis-generator-config_1_0.dtd">
+<generatorConfiguration>
+ <!-- 指定连接数据库的 JDBC 驱动包所在位置,指定到你本机的完整路径 -->
+ <classPathEntry location="D:\ENV\repository\com\oracle\ojdbc\ojdbc8\19.3.0.0\ojdbc8-19.3.0.0.jar"/>
+ <classPathEntry location="F:\desktop\orai18n-19.7.0.0.jar"/>
+ <!-- 配置 table 表信息内容体,targetRuntime 指定采用 MyBatis3 的版本 -->
+ <context id="tables" targetRuntime="MyBatis3">
+ <!-- 抑制生成注释,由于生成的注释都是英文的,可以不让它生成 -->
+ <commentGenerator>
+ <property name="suppressAllComments" value="true"/>
+ </commentGenerator>
+ <!-- 配置数据库连接信息 -->
+ <jdbcConnection driverClass="oracle.jdbc.driver.OracleDriver"
+ connectionURL="jdbc:oracle:thin:@//112.98.126.2:21521/orcl"
+ userId="c##ard_user"
+ password="123456">
+ </jdbcConnection>
+ <!-- 生成 model 类,targetPackage 指定 model 类的包名, targetProject 指定
+ 生成的 model 放在 eclipse 的哪个工程下面-->
+ <javaModelGenerator targetPackage="com.ard.alarm.digitization.model"
+ targetProject="src/main/java">
+ <property name="enableSubPackages" value="false"/>
+ <property name="trimStrings" value="false"/>
+ </javaModelGenerator>
+ <!-- 生成 MyBatis 的 Mapper.xml 文件,targetPackage 指定 mapper.xml 文件的
+ 包名, targetProject 指定生成的 mapper.xml 放在 eclipse 的哪个工程下面 -->
+ <sqlMapGenerator targetPackage="mapper"
+ targetProject="src/main/resources">
+ <property name="enableSubPackages" value="false"/>
+ </sqlMapGenerator>
+ <!-- 生成 MyBatis 的 Mapper 接口类文件,targetPackage 指定 Mapper 接口类的包
+ 名, targetProject 指定生成的 Mapper 接口放在 eclipse 的哪个工程下面 -->
+ <javaClientGenerator type="XMLMAPPER"
+ targetPackage="com.ard.alarm.digitization.mapper" targetProject="src/main/java">
+ <property name="enableSubPackages" value="false"/>
+ </javaClientGenerator>
+ <!-- 数据库表名及对应的 Java 模型类名 -->
+ <table tableName="DATABRIDGE" domainObjectName="Databridge"
+ enableCountByExample="false"
+ enableUpdateByExample="false"
+ enableDeleteByExample="false"
+ enableSelectByExample="false"
+ selectByExampleQueryId="false">
+ <!--使用实际的字段名-->
+ <property name="useActualColumnNames" value="true"/>
+ <columnOverride column="DB_GUID" property="id"/>
+ <columnOverride column="DB_XMMC" property="xmmc"/>
+ <columnOverride column="DB_FKEY" property="fKey"/>
+ <columnOverride column="DB_FNAME" property="fName"/>
+ <columnOverride column="DB_VALUE" property="value"/>
+ <columnOverride column="DB_DATETIME" property="dateTime"/>
+ </table>
+ </context>
+</generatorConfiguration>
\ No newline at end of file
diff --git a/src/main/resources/application-dev.yml b/src/main/resources/application-dev.yml
index bbc7292..7abba08 100644
--- a/src/main/resources/application-dev.yml
+++ b/src/main/resources/application-dev.yml
@@ -9,37 +9,100 @@
max-file-size: 30MB
max-request-size: 30MB
datasource:
- # 使用druid数据库连接池
- druid:
- #开启druid监控web
- stat-view-servlet:
- enabled: true
- driver-class-name: org.postgresql.Driver
- url: jdbc:postgresql://192.168.1.15:5432/ry-vue?stringtype=unspecified
- username: postgres
- password: postgres
- #最大连接数
- maxActive: 30
- #最小连接数
- minIdle: 5
- #获取连接的最大等待时间
- maxWait: 10000
- #解决mysql8小时的问题
- validation-query: SELECT 'X'
- #空闲连接的检查时间间隔
- timeBetweenEvictionRunsMillis: 60000
- #空闲连接最小空闲时间
- minEvictableIdleTimeMillis: 300000
+ dynamic:
+ primary: postgres #设置默认的数据源或者数据源组
+ strict: false #严格匹配数据源,默认false. true未匹配到指定数据源时抛异常,false使用默认数据源
+ druid: # 全局druid参数,单独数据源配置为空时取全局配置
+ # 连接池的配置信息
+ # 初始化大小,最小,最大
+ initial-size: 1
+ min-idle: 2
+ maxActive: 8
+ # 配置获取连接等待超时的时间
+ maxWait: 60000
+ # 配置间隔多久才进行一次检测,检测需要关闭的空闲连接,单位是毫秒
+ timeBetweenEvictionRunsMillis: 60000
+ # 配置一个连接在池中最小生存的时间,单位是毫秒
+ minEvictableIdleTimeMillis: 300000
+ validationQuery: SELECT 1 FROM DUAL
+ testWhileIdle: true
+ testOnBorrow: false
+ testOnReturn: false
+ # 打开PSCache,并且指定每个连接上PSCache的大小
+ poolPreparedStatements: true
+ maxPoolPreparedStatementPerConnectionSize: 20
+ # 配置监控统计拦截的filters,去掉后监控界面sql无法统计,'wall'用于防火墙
+ filters: stat,wall,slf4j
+ # 通过connectProperties属性来打开mergeSql功能;慢SQL记录
+ connectionProperties: druid.stat.mergeSql\=true;druid.stat.slowSqlMillis\=5000
+ datasource:
+ oracle:
+ url: jdbc:oracle:thin:@//112.98.126.2:21521/orcl
+ username: c##ard_user
+ password: 123456
+ driver-class-name: oracle.jdbc.driver.OracleDriver
+ druid: #配置mysql 默认连接池参数
+ # 连接池的配置信息
+ # 初始化大小,最小,最大
+ initial-size: 3
+ min-idle: 3
+ maxActive: 8
+ # 配置获取连接等待超时的时间
+ maxWait: 600000
+ # 配置间隔多久才进行一次检测,检测需要关闭的空闲连接,单位是毫秒
+ timeBetweenEvictionRunsMillis: 60000
+ # 配置一个连接在池中最小生存的时间,单位是毫秒
+ minEvictableIdleTimeMillis: 300000
+ validationQuery: SELECT 1 FROM DUAL
+ testWhileIdle: true
+ testOnBorrow: false
+ testOnReturn: false
+ # 打开PSCache,并且指定每个连接上PSCache的大小
+ poolPreparedStatements: true
+ maxPoolPreparedStatementPerConnectionSize: 20
+ # 配置监控统计拦截的filters,去掉后监控界面sql无法统计,'wall'用于防火墙
+ filters: stat,wall,slf4j
+ # 通过connectProperties属性来打开mergeSql功能;慢SQL记录
+ connectionProperties: druid.stat.mergeSql\=true;druid.stat.slowSqlMillis\=5000
+ postgres:
+ url: jdbc:postgresql://192.168.1.55:5432/ry-vue
+ username: postgres
+ password: postgres
+ driver-class-name: org.postgresql.Driver
+ druid: # 配置multi-datasource1 数据源连接池参数
+ # 连接池的配置信息
+ # 初始化大小,最小,最大
+ initial-size: 2
+ min-idle: 2
+ maxActive: 2
+ # 配置获取连接等待超时的时间
+ maxWait: 600000
+ # 配置间隔多久才进行一次检测,检测需要关闭的空闲连接,单位是毫秒
+ timeBetweenEvictionRunsMillis: 60000
+ # 配置一个连接在池中最小生存的时间,单位是毫秒
+ minEvictableIdleTimeMillis: 300000
+ validationQuery: SELECT 1
+ testWhileIdle: true
+ testOnBorrow: false
+ testOnReturn: false
+ # 打开PSCache,并且指定每个连接上PSCache的大小
+ poolPreparedStatements: true
+ maxPoolPreparedStatementPerConnectionSize: 20
+ # 配置监控统计拦截的filters,去掉后监控界面sql无法统计,'wall'用于防火墙
+ filters: stat,wall,slf4j
+ # 通过connectProperties属性来打开mergeSql功能;慢SQL记录
+ connectionProperties: druid.stat.mergeSql\=true;druid.stat.slowSqlMillis\=5000
+
# netty配置
netty:
udp:
port: 40000
enabled: true
tcp:
- enabled: true
+ enabled: false
# mqtt配置
mqtt:
- host: tcp://192.168.1.15:1883
+ host: tcp://192.168.1.55:1883
clientId: cc3
username: admin
password: xzx12345
@@ -62,8 +125,8 @@
# 日志等级配置
logging:
level:
- hikSdk: debug
- mqtt: info
+ hikSdk: info
+ mqtt: debug
netty: info
external: info
camera: info
diff --git a/src/main/resources/application.yml b/src/main/resources/application.yml
index fadf7d2..ad9a171 100644
--- a/src/main/resources/application.yml
+++ b/src/main/resources/application.yml
@@ -1,4 +1,4 @@
spring:
profiles:
- active: prod
+ active: dev
--
Gitblit v1.9.3