idea中定時及多數(shù)據(jù)源配置方法
因項目要求,需要定時從達夢數(shù)據(jù)庫中取數(shù)據(jù),并插入或更新到ORACLE數(shù)據(jù)庫中
1.pom.xml
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.7.18-SNAPSHOT</version>
<relativePath/>
</parent>
<groupId>com.example</groupId>
<artifactId>pro</artifactId>
<version>0.0.1-SNAPSHOT</version>
<packaging>war</packaging>
<name>pro</name>
<description>Demo project for Spring Boot</description>
<properties>
<java.version>1.8</java.version>
</properties>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-devtools</artifactId>
<scope>runtime</scope>
<optional>true</optional>
</dependency>
<dependency>
<groupId>com.oracle.database.jdbc</groupId>
<artifactId>ojdbc8</artifactId>
<scope>runtime</scope>
</dependency>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<optional>true</optional>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-tomcat</artifactId>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-jdbc</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-aop</artifactId>
</dependency>
<dependency>
<groupId>org.mybatis.spring.boot</groupId>
<artifactId>mybatis-spring-boot-starter</artifactId>
<version>2.2.2</version>
</dependency>
<!-- https://mvnrepository.com/artifact/com.oracle.database.nls/orai18n -->
<dependency>
<groupId>com.oracle.database.nls</groupId>
<artifactId>orai18n</artifactId>
<version>19.7.0.0</version>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-autoconfigure</artifactId>
<version>2.5.7</version>
</dependency>
<!-- 達夢數(shù)據(jù)庫驅動 -->
<dependency>
<groupId>dm.jdbc</groupId>
<artifactId>DmJdbcDriver18</artifactId>
<version>18</version>
</dependency>
<!--苞米豆的多數(shù)據(jù)源配置依賴-->
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>dynamic-datasource-spring-boot-starter</artifactId>
<version>3.4.1</version>
</dependency>
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>dynamic-datasource-spring-boot-starter</artifactId>
<version>3.4.1</version>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<configuration>
<excludes>
<exclude>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
</exclude>
</excludes>
</configuration>
</plugin>
<!-- generator插件 -->
<plugin>
<groupId>org.mybatis.generator</groupId>
<artifactId>mybatis-generator-maven-plugin</artifactId>
<version>1.3.7</version>
<configuration>
<configurationFile>
${basedir}/src/main/resources/generator/generatorConfig.xml
</configurationFile>
<overwrite>true</overwrite>
<verbose>true</verbose>
</configuration>
<dependencies>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>8.0.16</version>
</dependency>
<!-- 達夢數(shù)據(jù)庫驅動 -->
<dependency>
<groupId>dm.jdbc</groupId>
<artifactId>DmJdbcDriver18</artifactId>
<version>18</version>
</dependency>
<dependency>
<groupId>tk.mybatis</groupId>
<artifactId>mapper</artifactId>
<version>4.1.5</version>
</dependency>
</dependencies>
</plugin>
</plugins>
</build>
<repositories>
<repository>
<id>spring-milestones</id>
<name>Spring Milestones</name>
<url>https://repo.spring.io/milestone</url>
<snapshots>
<enabled>false</enabled>
</snapshots>
</repository>
<repository>
<id>spring-snapshots</id>
<name>Spring Snapshots</name>
<url>https://repo.spring.io/snapshot</url>
<releases>
<enabled>false</enabled>
</releases>
</repository>
</repositories>
<pluginRepositories>
<pluginRepository>
<id>spring-milestones</id>
<name>Spring Milestones</name>
<url>https://repo.spring.io/milestone</url>
<snapshots>
<enabled>false</enabled>
</snapshots>
</pluginRepository>
<pluginRepository>
<id>spring-snapshots</id>
<name>Spring Snapshots</name>
<url>https://repo.spring.io/snapshot</url>
<releases>
<enabled>false</enabled>
</releases>
</pluginRepository>
</pluginRepositories>
</project>2.yml 文件
server:
port: 9321
spring:
datasource:
dynamic:
primary: master #設置默認的數(shù)據(jù)源或者數(shù)據(jù)源組,默認值即為master
strict: true #設置嚴格模式,默認false不啟動,啟動后在未匹配到指定數(shù)據(jù)源時,會拋出異常,不啟動則使用默認數(shù)據(jù)源
datasource:
master: #主數(shù)據(jù)源
url: jdbc:dm://127.0.0.1:5236/test?zeroDateTimeBehavior=convertToNull&useUnicode=true&characterEncoding=UTF-8
username: SYSDBA
password: SYSDBA
driver-class-name: dm.jdbc.driver.DmDriver
db2 : #子數(shù)據(jù)源
url: jdbc:oracle:thin:@localhost:1521:ORCL?useUnicode=true&characterEncoding=ZHS16GBK
username: avic
password: avic
driver-class-name: oracle.jdbc.driver.OracleDriver
mybatis:
mapper-locations: classpath:/mapper/*.xml # 配置MyBatis-Plus掃描Mapper文件的位置
type-aliases-package: com.example.pro.pojo # 創(chuàng)建別名的類所在的包
logging:
level:
com:
example:
pro: debug
file:
name: ./logs/my.log
pattern:
console: "%d{yyyy/MM/dd-HH:mm:ss} [%thread] %-5level %logger- %msg%n"
file: "%d{yyyy/MM/dd-HH:mm} [%thread] %-5level %logger- %msg%n"
3.mapper
主數(shù)據(jù)源是達夢的,達夢mapper調用不需要額外的配置,正常使用即可
從數(shù)據(jù)源是oracle的,需要額外進行配置 @DS(value = "從數(shù)據(jù)源")
package com.example.pro.mapper;
import com.baomidou.dynamic.datasource.annotation.DS;
import com.example.pro.pojo.AvicUser;
import org.apache.ibatis.annotations.Mapper;
import java.util.ArrayList;
import java.util.List;
/**
* OracleMapper
*/
//@Repository
@Mapper
public interface OracleMapper {
@DS(value = "db2")
List<AvicUser> getList();
@DS(value = "db2")
int insetList(ArrayList<AvicUser> avicList);
@DS(value = "db2")
void insertObj(AvicUser avicUser);
}4.定時任務
package com.example.pro.timer;
import com.example.pro.service.IOperationService;
import com.example.pro.service.IOracleService;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.stereotype.Component;
/**
* 定時任務 , 每天 晚上 11點 執(zhí)行
*/
@Slf4j
@Component
public class Schedule {
@Autowired
private IOperationService operationService;
@Autowired
private IOracleService oracleService;
public Schedule() {
log.debug("創(chuàng)建計劃任務類對象:Schedule");
}
/*@Scheduled(cron = "0 0 23 * * ? ")
每天晚上11點開始執(zhí)行任務*/
//@Scheduled(fixedRate = 1 * 60 * 1000)
@Scheduled(cron = "0/300 * * * * ?") //30秒執(zhí)行一次
public void timedTask() {
log.debug("開始執(zhí)行處理定時的計劃任務……");
operationService.angelhood();
//oracleService.getDmlist();
//oracleService.getOraclelist();
log.debug("處理定時的計劃任務執(zhí)行完成!");
}
}5.啟動類
package com.example.pro;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration;
import org.springframework.context.annotation.EnableAspectJAutoProxy;
import org.mybatis.spring.annotation.MapperScan;
import org.springframework.scheduling.annotation.EnableScheduling;
@SpringBootApplication(exclude = {DataSourceAutoConfiguration.class})//多數(shù)據(jù)源時是使用
@EnableAspectJAutoProxy //開啟Spring Boot對AOP的支持
@MapperScan("com.example.pro.mapper")//包掃描
@EnableScheduling//開啟定時
public class ProApplication {
public static void main(String[] args) {
SpringApplication.run(ProApplication.class, args);
}
}6.打包+運行指令
因項目需要 package 打包成了 war 包
nohup java -jar pro-0.0.1-SNAPSHOT.war > oracle.log 2>& 1&

到此這篇關于idea中定時+多數(shù)據(jù)源配置的文章就介紹到這了,更多相關idea多數(shù)據(jù)源配置內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
SpringBoot集成screw實現(xiàn)數(shù)據(jù)庫表結構文檔生成
screw(螺絲釘)是一款簡潔好用的數(shù)據(jù)庫表結構文檔生成工具,而在日常的開發(fā)工作中在某些場景可能會需要數(shù)據(jù)庫表結構的文檔,下面我們就來看看SpringBoot如何集成screw實現(xiàn)數(shù)據(jù)庫表結構文檔生成吧2025-07-07
Java基礎之JDBC的數(shù)據(jù)庫連接與基本操作
這篇文章主要介紹了Java基礎之JDBC的數(shù)據(jù)庫連接與基本操作,文中有非常詳細的代碼示例,對正在學習java基礎的小伙伴們也有很好的幫助,需要的朋友可以參考下2021-05-05
SpringCloud升級2020.0.x版之OpenFeign簡介與使用實現(xiàn)思路
在微服務系統(tǒng)中,我們經(jīng)常會進行 RPC 調用。在 Spring Cloud 體系中,RPC 調用一般就是 HTTP 協(xié)議的調用。對于每次調用,都要經(jīng)過一系列詳細步驟,接下來通過本文給大家介紹SpringCloud OpenFeign簡介與使用,感興趣的朋友一起看看吧2021-10-10
springboot項目監(jiān)控開發(fā)小用例(實例分析)
這篇文章主要介紹了springboot項目監(jiān)控開發(fā)小用例,本文通過實例代碼給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下2020-09-09
基于FeignException$InternalServerError的解決方案
這篇文章主要介紹了FeignException$InternalServerError的解決方案,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2021-06-06
java中利用List的subList方法實現(xiàn)對List分頁(簡單易學)
本篇文章主要介紹了java中l(wèi)ist數(shù)據(jù)拆分為sublist實現(xiàn)頁面分頁的簡單代碼,具有一定的參考價值,有需要的可以了解一下。2016-11-11

