配置多数据库

使用IDEA基于SpringBoot项目,连接多个数据库或指定连接数据源
当你想要项目中同时想使用两个数据库,或者你想自定义指定使用哪个数据库时,而springboot又不知道你的想法,这怎么办?那就需要让springboot知道你想干嘛。

一、正常情况:

连接

spring:
datasource:
username: root
password: xxxxxx #你的数据库密码
url: jdbc:mysql://localhost:3306/xxxxxxxxxx #你的数据库url
driver-class-name: com.mysql.jdbc.Driver #数据库驱动
type: com.alibaba.druid.pool.DruidDataSource #使用哪种连接池 (如果项目不需要可以不写)

这种情况spring boot会自动识别并注入。

二、使用多个数据库时:
(一)yml配置数据库:使用多个数据连接

连接

spring:

项目数据库的连接

注意:当只有一个连接时,spring会默认连接,并且jdbcUrl是使用 url

当时当有两个连接时,需要一个连接配置类:QuartzDataSourceConfig,并且使用 jdbcUrl

datasource:
username: root
password: xxxxxx #你的数据库密码
jdbcUrl: jdbc:mysql://localhost:3306/xxxxxxxxxx #你的数据库url
driver-class-name: com.mysql.jdbc.Driver #数据库驱动
type: com.alibaba.druid.pool.DruidDataSource #使用哪种连接池 (如果项目不需要可以不写)

定时任务的连接(下面你不用看懂,只要知道这是一个数据库连接即可)

quartz:
job-store-type: jdbc #持久化到数据库
properties:
org:
quartz:
datasource:
driver-class-name: com.mysql.jdbc.Driver
jdbcUrl: jdbc:mysql://localhost:3306/xxxxxxxxxx #你的数据库url
username: root
password: xxxxxx #你的数据库密码
scheduler:
instancName: clusteredScheduler
instanceId: AUTO
jobStore:
class: org.quartz.impl.jdbcjobstore.JobStoreTX
driverDelegateClass: org.quartz.impl.jdbcjobstore.StdJDBCDelegate #StdJDBCDelegate说明支持集群
tablePrefix: QRTZ_
isClustered: true
clusterCheckinInterval: 1000
useProperties: false
threadPool:
class: org.quartz.simpl.SimpleThreadPool
threadCount: 20
threadPriority: 5
(二)配置文件指定主数据库:(告诉springboot怎么使用数据库)
@Configuration
public class QuartzDataSourceConfig {

//主数据源
@Bean
@Primary //主数据库,指向pethome
@ConfigurationProperties(prefix = "spring.datasource")
public DataSource dataSource(){
    return DataSourceBuilder.create().build();
}

//为quartz创建一个自己数据源
@Bean
@QuartzDataSource //quartz数据源
@ConfigurationProperties(prefix = "spring.quartz.properties.org.quartz.datasource")
public DataSource quartzDataSource(){
    return  DataSourceBuilder.create().build();
}

}
'''
这就大功告成了,你可以使用两个数据库了

三、指定数据库那个数据库(虽然springboot会自动配置)
当只有一个数据源连接时,SpringBoot会自动注入,但是你也可以指定(主要是用来学习上面多个数据源接连)

(一)同样开始配置yml文件

连接

spring:

项目数据库的连接

注意:当只有一个连接时,spring会默认连接,并且jdbcUrl是使用 url

当时当有两个连接时,需要一个连接配置类:QuartzDataSourceConfig,并且使用 jdbcUrl

datasource:
username: root
password: xxxxxx #你的数据库密码
jdbcUrl: jdbc:mysql://localhost:3306/xxxxxxxxxx #你的数据库url
driver-class-name: com.mysql.jdbc.Driver #数据库驱动
type: com.alibaba.druid.pool.DruidDataSource #使用哪种连接池 (如果项目不需要可以不写)

(二)配置类
@Configuration
public class DataSourceConfig {

//主数据源
@Bean
@Primary //主数据库
@ConfigurationProperties(prefix = "spring.datasource")
public DataSource dataSource(){
    DataSource dataSource = DataSourceBuilder.create().build();
    return dataSource;
}

}

大功告成,注意 : #你的数据库url 。多个数据源连接时是jdbcUrl。

当然解决问题的方法一个,

posted @ 2022-04-25 11:12  我是个机器人  阅读(375)  评论(0编辑  收藏  举报