SpringBoot项目多数据源配置(亲测有效)

1、开发环境准备

开发工具:IDEA
开发工具:Maven+JDK8
所用技术:SpringBoot+Mybatis
数据库:MySQL
SpringBoot版本:2.1.0

2、创建SpringBoot项目,项目结构如下
在这里插入图片描述
3、数据库信息

创建两个数据库和 user 表、money表。
我们一共创建的两个数据库 test1 和 test2,然后分别在这两个数据库中创建了 user 用户表、money工资详情表(字段随便设置)。

4、pom文件依赖

        <dependency>
            <groupId>org.mybatis.spring.boot</groupId>
            <artifactId>mybatis-spring-boot-starter</artifactId>
            <version>1.3.2</version>
        </dependency>
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <scope>runtime</scope>
        </dependency>

5、配置application.yml

注意事项:
	在1.0 配置数据源的过程中主要是写成:spring.datasource.url 和spring.datasource.driverClassName。
而在2.0升级之后需要变更成:spring.datasource.jdbc-url和spring.datasource.driver-class-name!不然在连接数据库时可能会报下面的错误:另外在在2.0.2+版本后需要在datasource后面加上hikari,如果你没有加的话,同样可能会报错。

Error querying database. Cause: java.lang.IllegalArgumentException: jdbcUrl is required with driverClassName.

Spring:
  datasource:
    hikari:
      db1:
        jdbc-url: jdbc:mysql://localhost:3306/test1?useUnicode=true&characterEncoding=utf8&useSSL=true&serverTimezone=GMT%2B8
        username: root
        password: root
      db2:
        jdbc-url: jdbc:mysql://localhost:3306/test2?useUnicode=true&characterEncoding=utf8&useSSL=true&serverTimezone=GMT%2B8
        username: root
        password: root
      driver-class-name: com.mysql.cj.jdbc.Driver

6、实现

①:创建实体类bean
②:数据源配置

package com.test.demo.config;

import org.apache.ibatis.session.SqlSessionFactory;
import org.mybatis.spring.SqlSessionFactoryBean;
import org.mybatis.spring.SqlSessionTemplate;
import org.mybatis.spring.annotation.MapperScan;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.boot.jdbc.DataSourceBuilder;
import org.springframework.context.annotation.Bean;
import org.springframework.context.
  • 1
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
在Spring Boot项目配置多个数据源可以通过以下步骤实现: 1. 禁用Spring Boot的数据源自动配置类。在@SpringBootApplication注解中添加exclude属性,值为DataSourceAutoConfiguration.class,如下所示: ```java @SpringBootApplication(exclude = {DataSourceAutoConfiguration.class}) public class DatasourceDomeApplication { public static void main(String[] args) { SpringApplication.run(DatasourceDomeApplication.class, args); } } ``` 2. 创建自定义的数据源配置类。在该类中使用@Configuration注解,并定义多个@Bean方法,每个方法返回一个DataSource对象,用于初始化不同的数据源。可以使用@ConfigurationProperties(prefix = "spring.datasource.mysql-datasourceX")注解来指定每个数据源的属性配置,如下所示: ```java @Configuration public class DataSourceConfig { @Bean(name = "mysqlDataSource1") @ConfigurationProperties(prefix = "spring.datasource.mysql-datasource1") public DataSource dataSource1(){ DruidDataSource build = DruidDataSourceBuilder.create().build(); return build; } @Bean(name = "mysqlDataSource2") @ConfigurationProperties(prefix = "spring.datasource.mysql-datasource2") public DataSource dataSource2(){ DruidDataSource build = DruidDataSourceBuilder.create().build(); return build; } } ``` 3. 在application.yml配置文件中配置数据源相关的属性。可以根据需要配置每个数据源的连接信息、用户名、密码等,如下所示: ```yaml spring: datasource: mysql-datasource1: url: jdbc:mysql://localhost:3306/db1 username: root password: password1 mysql-datasource2: url: jdbc:mysql://localhost:3306/db2 username: root password: password2 ``` 通过以上步骤,你可以成功配置多个数据源,并在项目中使用对应的数据源进行数据库操作。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *3* [Spring Boot配置多数据源的四种方式](https://blog.csdn.net/qq_45515182/article/details/126330084)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *2* [SpringBoot多数据源配置](https://blog.csdn.net/u012060033/article/details/123759694)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值