idea中定時(shí)及多數(shù)據(jù)源配置方法
因項(xiàng)目要求,需要定時(shí)從達(dá)夢(mèng)數(shù)據(jù)庫(kù)中取數(shù)據(jù),并插入或更新到ORACLE數(shù)據(jù)庫(kù)中
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> <!-- 達(dá)夢(mèng)數(shù)據(jù)庫(kù)驅(qū)動(dòng) --> <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> <!-- 達(dá)夢(mèng)數(shù)據(jù)庫(kù)驅(qū)動(dòng) --> <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è)置默認(rèn)的數(shù)據(jù)源或者數(shù)據(jù)源組,默認(rèn)值即為master strict: true #設(shè)置嚴(yán)格模式,默認(rèn)false不啟動(dòng),啟動(dòng)后在未匹配到指定數(shù)據(jù)源時(shí),會(huì)拋出異常,不啟動(dòng)則使用默認(rèn)數(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ù)源是達(dá)夢(mèng)的,達(dá)夢(mèng)mapper調(diào)用不需要額外的配置,正常使用即可
從數(shù)據(jù)源是oracle的,需要額外進(jìn)行配置 @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.定時(shí)任務(wù)
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; /** * 定時(shí)任務(wù) , 每天 晚上 11點(diǎn) 執(zhí)行 */ @Slf4j @Component public class Schedule { @Autowired private IOperationService operationService; @Autowired private IOracleService oracleService; public Schedule() { log.debug("創(chuàng)建計(jì)劃任務(wù)類對(duì)象:Schedule"); } /*@Scheduled(cron = "0 0 23 * * ? ") 每天晚上11點(diǎn)開(kāi)始執(zhí)行任務(wù)*/ //@Scheduled(fixedRate = 1 * 60 * 1000) @Scheduled(cron = "0/300 * * * * ?") //30秒執(zhí)行一次 public void timedTask() { log.debug("開(kāi)始執(zhí)行處理定時(shí)的計(jì)劃任務(wù)……"); operationService.angelhood(); //oracleService.getDmlist(); //oracleService.getOraclelist(); log.debug("處理定時(shí)的計(jì)劃任務(wù)執(zhí)行完成!"); } }
5.啟動(dòng)類
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ù)源時(shí)是使用 @EnableAspectJAutoProxy //開(kāi)啟Spring Boot對(duì)AOP的支持 @MapperScan("com.example.pro.mapper")//包掃描 @EnableScheduling//開(kāi)啟定時(shí) public class ProApplication { public static void main(String[] args) { SpringApplication.run(ProApplication.class, args); } }
6.打包+運(yùn)行指令
因項(xiàng)目需要 package 打包成了 war 包
nohup java -jar pro-0.0.1-SNAPSHOT.war > oracle.log 2>& 1&
到此這篇關(guān)于idea中定時(shí)+多數(shù)據(jù)源配置的文章就介紹到這了,更多相關(guān)idea多數(shù)據(jù)源配置內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Netty分布式pipeline管道傳播outBound事件源碼解析
這篇文章主要介紹了Netty分布式pipeline管道傳播outBound事件源碼解析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-03-03Java web含驗(yàn)證碼及權(quán)限登錄實(shí)例代碼
這篇文章主要介紹了Java web含驗(yàn)證碼及權(quán)限登錄實(shí)例代碼,所用到的開(kāi)發(fā)工具為myeclipse10,MySQL數(shù)據(jù)庫(kù),具體實(shí)現(xiàn)代碼大家參考下本文吧2017-03-03JDBC簡(jiǎn)介_(kāi)動(dòng)力節(jié)點(diǎn)Java學(xué)院整理
什么是JDBC?這篇文章就為大家詳細(xì)介紹了Java語(yǔ)言中用來(lái)規(guī)范客戶端程序如何來(lái)訪問(wèn)數(shù)據(jù)庫(kù)的應(yīng)用程序接口,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-07-07Java通過(guò)工廠、Map容器創(chuàng)建對(duì)象的方法
這篇文章主要介紹了Java通過(guò)工廠、Map容器創(chuàng)建對(duì)象的方法,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2021-03-03SpringBoot整合Redis實(shí)現(xiàn)登錄失敗鎖定功能(實(shí)例詳解)
本文我們已經(jīng)探討如何利用Redis來(lái)實(shí)現(xiàn)鎖定賬戶的安全措施,以及通過(guò)SpringBoot整合Redis實(shí)現(xiàn)了這一功能,感興趣的朋友跟隨小編一起學(xué)習(xí)下吧2024-02-02Java基礎(chǔ)之創(chuàng)建虛擬機(jī)對(duì)象的過(guò)程詳細(xì)總結(jié)
本文基于虛擬機(jī)HotSpot和常用的內(nèi)存區(qū)域Java堆深入對(duì)象分配、布局和訪問(wèn)的全過(guò)程,文中有非常詳細(xì)的圖文解說(shuō),對(duì)正在學(xué)習(xí)java的小伙伴們很有幫助,需要的朋友可以參考下2021-05-05