說明
開發(fā)工具默認(rèn)集成spring data jpa 操作數(shù)據(jù)庫,在實(shí)際項(xiàng)目使用不方便顶瞒,現(xiàn)集成Mybatis
以及Mybatis-Plus
插件夸政,使用HikariCP
作為數(shù)據(jù)源。
一 榴徐、集成數(shù)據(jù)源
- 添加以下jar包
HikariCP-2.6.3.jar
- 數(shù)據(jù)源配置
spring.datasource.url=jdbc:mysql://ip:port/ctpsp
# 加密數(shù)據(jù)庫連接信息
spring.datasource.username=ENC(ukdPxk2YeSrilKZFvsNr2g==)
spring.datasource.password=ENC(nK0oIOT1Mx6Kn27UhntqBg==)
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
spring.datasource.type=com.zaxxer.hikari.HikariDataSource
spring.datasource.hikari.pool-name=DataBaseHikari
spring.datasource.hikari.minimum-idle=5
spring.datasource.hikari.maximum-pool-size=15
spring.datasource.hikari.auto-commit=true
spring.datasource.hikari.idle-timeout=30000
spring.datasource.hikari.max-lifetime=1800000
spring.datasource.hikari.connection-timeout=30000
spring.datasource.hikari.connection-test-query=SELECT 1
二 守问、集成MyBatis和Mybatis-Plus插件
- 添加以下jar包
jsqlparser-0.9.5.jar
mybatis-3.4.4.jar
mybatis-plus-2.1.9.jar
mybatis-plus-core-2.1.9.jar
mybatis-plus-generate-2.1.9.jar
mybatis-plus-support-2.1.9.jar
mybatis-spring-1.3.1.jar
mybatis-spring-boot-autoconfigure-1.3.0.jar
mybatis-spring-boot-starter-1.3.0.jar
mybatisplus-spring-boot-starter-1.0.5.jar
- 配置
在啟動(dòng)類上添加mybati掃描路徑以及注入分頁插件
@MapperScan("com.gdtnx.cloud.**.mapper")
在啟動(dòng)類中注入分頁插件
@Bean public PaginationInterceptor paginationInterceptor() { PaginationInterceptor page = new PaginationInterceptor(); return page; }
配置文件中配置掃描Mbatis的XML文件路徑
# mybatis-plus mybatis-plus.mapper-locations = classpath:mapper/*.xml mybatis-plus.typeAliasesPackage = com.gdtnx.cloud.**.domain
三 匀归、使用
請參照具體代碼和官方API文檔
四、多數(shù)據(jù)源
多數(shù)據(jù)源源代碼位于dysource包目錄下
- 在程序的主入口添加以下
@Import(DynamicDataSourceRegister.class) public class Application { public static void main(String[] args) { SpringApplication.run(Application.class, args); } }
- 配置文件中添加多數(shù)據(jù)源配置信息(用戶名密碼支持加密)
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver spring.datasource.url=jdbc:mysql://192.168.25.163:3306/ctpsp?serverTimezone=UTC&useUnicode=true&characterEncoding=utf-8&useSSL=false #spring.datasource.username=dept #spring.datasource.password=novell spring.datasource.username=ENC(ukdPxk2YeSrilKZFvsNr2g==) spring.datasource.password=ENC(nK0oIOT1Mx6Kn27UhntqBg==) spring.datasource.maximum-pool-size=80 spring.datasource.initialSize=5 spring.datasource.minIdle=5 spring.datasource.maxActive=20 spring.datasource.minEvictableIdleTimeMillis=300000 spring.datasource.validationQuery=SELECT 1 spring.datasource.testWhileIdle=true spring.datasource.testOnBorrow=false spring.datasource.testOnReturn=false spring.datasource.poolPreparedStatements=true spring.datasource.maxPoolPreparedStatementPerConnectionSize=20 # 更多數(shù)據(jù)源 custom.datasource.names=ds1,ds2 custom.datasource.ds1.driver-class-name=com.mysql.cj.jdbc.Driver custom.datasource.ds1.url=jdbc:mysql://192.168.25.163:3306/paca?serverTimezone=UTC&useUnicode=true&characterEncoding=utf-8&useSSL=false custom.datasource.ds1.username=dept custom.datasource.ds1.password=ENC(nK0oIOT1Mx6Kn27UhntqBg==>) custom.datasource.ds1.type=com.zaxxer.hikari.HikariDataSource custom.datasource.ds2.driver-class-name=com.mysql.cj.jdbc.Driver custom.datasource.ds2.url=jdbc:mysql://192.168.25.163:3306/test?serverTimezone=UTC&useUnicode=true&characterEncoding=utf-8&useSSL=false custom.datasource.ds2.username=dept custom.datasource.ds2.password=novell custom.datasource.ds2.type=com.zaxxer.hikari.HikariDataSource
- 使用
在service層使用TargetDataSource注解切換數(shù)據(jù)源