需求
一个项目中的数据被告知要实时同步到另一个项目中去,我负责的项目是Java写的(springboot框架,使用mybatis),那个项目是个.net项目(Sql Server 2008 R2),我就采用了最直接的方法,连接两个数据库,同时插入。
pom.xml
我在Maven Repository中找的jar包不能用,应该是和数据库版本有问题,类似于使用MySQL5.7但是用8.0的jar包,就会出现一点问题。索性我就去微软官网下载了个支持2008R2版本的jar包,然后加入到本地仓库。
<dependency>
<groupId>com.microsoft</groupId>
<artifactId>mssql</artifactId>
<version>2008</version>
</dependency>
jar包本地化的命令是:
mvn install:install-file -Dfile=jar包名 -DgroupId=groupID -DartifactId=artifactID -Dversion=版本 -Dpackaging=jar
配置文件
一个数据库的话可以直接使用系统配置,多数据库的话得加上标识以区分,然后再自己写个配置类来读取。
配置如下:
spring:
datasource:
primary:
type: com.zaxxer.hikari.HikariDataSource
driver-class-name: com.mysql.cj.jdbc.Driver
platform: mysql
hikari:
minimum-idle: 5
maximum-pool-size: 15
auto-commit: true
idle-timeout: 600000
pool-name: HikariCP-mysql
max-lifetime: 1800000
connection-test-query: SELECT 1
username: username
password: password
url: jdbc:mysql://host:port/databasename?serverTimezone=Asia/Shanghai
secondary:
type: com.zaxxer.hikari.HikariDataSource
driver-class-name: com.microsoft.sqlserver.jdbc.SQLServerDriver
platform: sqlserver
hikari:
minimum-idle: 5
maximum-pool-size: 15
auto-commit: true
idle-timeout: 600000
pool-name: HikariCP-sqlserver
max-lifetime: 1800000
connection-test-query: SELECT 1
username: sa
password: password
url: jdbc:sqlserver://host:post;DatabaseName=databasename
其中加上了primary和secondary来区分不同的数据库配置,数据库连接池用的是springboot推荐的hikari,也可以用druid。
配置类
系统默认的配置类是:
@ConfigurationProperties(prefix = "spring.datasource"