广告
返回顶部
首页 > 资讯 > 后端开发 > Python >教你使用springboot配置多数据源
  • 317
分享到

教你使用springboot配置多数据源

2024-04-02 19:04:59 317人浏览 薄情痞子

Python 官方文档:入门教程 => 点击学习

摘要

目录一、建库建表1.1 创建数据库db1和数据库db21.2 在数据库db1中创建表db11.3 在数据库db2中创建表db2二、创建SpringBoot项目2.1 pom.xml导

一、建库建表

1.1 创建数据库db1和数据库db2

在这里插入图片描述
在这里插入图片描述

1.2 在数据库db1中创建表db1

在这里插入图片描述


CREATE TABLE `db1` (
  `id` int unsigned zerofill NOT NULL AUTO_INCREMENT,
  `name` varchar(50) DEFAULT NULL,
  `age` int unsigned zerofill DEFAULT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8mb4;

1.3 在数据库db2中创建表db2

在这里插入图片描述


CREATE TABLE `db2` (
  `id` int unsigned zerofill NOT NULL AUTO_INCREMENT,
  `name` varchar(50) DEFAULT NULL,
  `age` int unsigned zerofill DEFAULT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8mb4;

二、创建springboot项目

2.1 pom.xml导入依赖


<dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-WEB</artifactId>
        </dependency>
        <dependency>
            <groupId>org.mybatis.spring.boot</groupId>
            <artifactId>mybatis-spring-boot-starter</artifactId>
            <version>2.1.4</version>
        </dependency>

        <dependency>
            <groupId>Mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <scope>runtime</scope>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
            <exclusions>
                <exclusion>
                    <groupId>org.junit.vintage</groupId>
                    <artifactId>junit-vintage-engine</artifactId>
                </exclusion>
            </exclusions>
        </dependency>
        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <scope>test</scope>
        </dependency>

2.2 创建application.yml文件(与 2.3 二选一进行配置,推荐此方法)


server:
  port: 8080 # 启动端口
spring:
  datasource:
    db1: # 数据源1
      jdbc-url: jdbc:mysql://localhost:3306/db1?serverTimezone=Asia/Shanghai&useUnicode=true&characterEncoding=utf8
      username: root
      passWord: root
      driver-class-name: com.mysql.cj.jdbc.Driver
    db2: # 数据源2
      jdbc-url: jdbc:mysql://localhost:3306/db2?serverTimezone=Asia/Shanghai&useUnicode=true&characterEncoding=utf8
      username: root
      password: root
      driver-class-name: com.mysql.cj.jdbc.Driver

2.3 创建application.properties文件(与 2.2 二选一进行配置)


server.port=8080

      spring.datasource.db1.url=jdbc:mysql://localhost:3306/db1?serverTimezone=Asia/Shanghai&useUnicode=true&characterEncoding=utf8
      spring.datasource.db1.username=root
      spring.datasource.db1.password=root
      spring.datasource.db1.driver-class-name=com.mysql.jdbc.Driver

      spring.datasource.db2.url=jdbc:mysql://localhost:3306/db2?serverTimezone=Asia/Shanghai&useUnicode=true&characterEncoding=utf8
      spring.datasource.db2.username=root
      spring.datasource.db2.password=root
      spring.datasource.db2.driver-class-name=com.mysql.jdbc.Driver

2.4 创建mapper文件

我个人是放在mapper包下,文件随便命名的
代码随便写的,测试而已

在这里插入图片描述


import org.apache.ibatis.annotations.Insert;
import org.apache.ibatis.annotations.Mapper;


@Mapper
public interface Db1Mapper {
    @Insert("insert into db1(name,age) values('if',18)")
    int add();
}

import org.apache.ibatis.annotations.Insert;
import org.apache.ibatis.annotations.Mapper;


@Mapper
public interface Db2Mapper {
    @Insert("insert into db2(name,age) values('fi',81)")
    int add();
}

2.5 创建config配置文件

我个人是放在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.annotation.Configuration;
import org.springframework.core.io.support.PathMatchingResourcePatternResolver;
import javax.sql.DataSource;


@Configuration
@MapperScan(basePackages = "com.ifyyf.study.mapper.db1", sqlSessionFactoryRef = "db1SqlSessionFactory")
public class Db1DataSourceConfig {
    @Bean("db1DataSource")
    @ConfigurationProperties(prefix = "spring.datasource.db1") //读取application.yml中的配置参数映射成为一个对象
    public DataSource getDb1DataSource(){
        return DataSourceBuilder.create().build();
    }

    @Bean("db1SqlSessionFactory")
    public SqlSessionFactory db1SqlSessionFactory(@Qualifier("db1DataSource") DataSource dataSource) throws Exception {
        SqlSessionFactoryBean bean = new SqlSessionFactoryBean();
        bean.setDataSource(dataSource);
        // mapper的xml形式文件位置必须要配置,不然将报错:no statement (这种错误也可能是mapper的xml中,namespace与项目的路径不一致导致)
        bean.setMapperLocations(new PathMatchingResourcePatternResolver().getResources("classpath*:mapping/db1
@Configuration
@MapperScan(basePackages = "com.ifyyf.study.mapper.db2", sqlSessionFactoryRef = "db2SqlSessionFactory")
public class Db2DataSourceConfig {
    @Bean("db2DataSource")
    @ConfigurationProperties(prefix = "spring.datasource.db2") //读取application.yml中的配置参数映射成为一个对象
    public DataSource getDb2DataSource(){
        return DataSourceBuilder.create().build();
    }

    @Bean("db2SqlSessionFactory")
    public SqlSessionFactory db2SqlSessionFactory(@Qualifier("db2DataSource") DataSource dataSource) throws Exception {
        SqlSessionFactoryBean bean = new SqlSessionFactoryBean();
        bean.setDataSource(dataSource);
        // mapper的xml形式文件位置必须要配置,不然将报错:no statement (这种错误也可能是mapper的xml中,namespace与项目的路径不一致导致)
        bean.setMapperLocations(new PathMatchingResourcePatternResolver().getResources("classpath*:mapping/db2/*.xml"));
        return bean.getObject();
    }

    @Bean("db2SqlSessionTemplate")
    public SqlSessionTemplate db2SqlSessionTemplate(@Qualifier("db2SqlSessionFactory") SqlSessionFactory sqlSessionFactory){
        return new SqlSessionTemplate(sqlSessionFactory);
    }
}

三、测试代码运行

3.1 测试类中测试代码

springboot项目中测试类进行测试


import com.ifyyf.study.mapper.db1.Db1Mapper;
import com.ifyyf.study.mapper.db2.Db2Mapper;
import org.junit.jupiter.api.Test;
import org.springframework.boot.test.context.SpringBootTest;
import javax.annotation.Resource;

@SpringBootTest
class StudyApplicationTests {
    @Resource
    private Db1Mapper db1Mapper;
    @Resource
    private Db2Mapper db2Mapper;
    @Test
    void contextLoads() {
        System.out.println(db1Mapper.add());
        System.out.println(db2Mapper.add());
    }
}

3.2 运行结果

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

到此这篇关于教你使用springboot配置多数据源的文章就介绍到这了,更多相关springboot配置多数据源内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

--结束END--

本文标题: 教你使用springboot配置多数据源

本文链接: https://www.lsjlt.com/news/126599.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • 教你使用springboot配置多数据源
    目录一、建库建表1.1 创建数据库db1和数据库db21.2 在数据库db1中创建表db11.3 在数据库db2中创建表db2二、创建springboot项目2.1 pom.xml导...
    99+
    2022-11-12
  • springboot mybatis druid配置多数据源教程
    目录1、项目代码结构2、导入基本依赖3、配置多数据源4、配置类5、启动类6、测试使用的表7、测试表对应的实体类8、持久层:dao层接口1、项目代码结构 2、导入基本依赖 记得需要导...
    99+
    2022-11-12
  • springboot多数据源配置
    简介 开发当中经常会遇到需要进行多库多表数据整合的需求,在无法拆分项目的情况下,就需要在一个项目中配置多数据源,实现多库数据的整合。本文是在springboot框架的基础上进行的多数据源配置,可参考,也欢迎指正 1、第一步:applicat...
    99+
    2023-08-24
    spring boot mybatis java database
  • 怎么使用SpringBoot配置多数据源
    这篇文章主要介绍了怎么使用SpringBoot配置多数据源的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇怎么使用SpringBoot配置多数据源文章都会有所收获,下面我们一起来看看吧。1. 引入jar包pom....
    99+
    2023-06-29
  • SpringBoot多数据源配置详细教程(JdbcTemplate、mybatis)
    多数据源配置 首先是配置文件 这里采用yml配置文件,其他类型配置文件同理 我配置了两个数据源,一个名字叫ds1数据源,一个名字叫ds2数据源,如果你想配置更多的...
    99+
    2022-11-11
  • SpringBoot使用druid配置多数据源问题
    目录一、背景二、版本介绍三、项目结构四、maven依赖 五、yaml配置文件六、数据源配置文件七、启动类配置八、druid管理页面总结一、背景 使用spring boot配...
    99+
    2023-03-11
    SpringBoot配置多数据源 druid配置多数据源 druid多数据源
  • SpringBoot怎么使用druid配置多数据源
    这篇“SpringBoot怎么使用druid配置多数据源”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“SpringBoot怎...
    99+
    2023-07-05
  • springboot怎么配置多数据源
    在Spring Boot中配置多个数据源可以通过以下步骤来实现: 在pom.xml文件中添加Spring Boot对多数据源的支...
    99+
    2023-10-23
    springboot
  • springboot redis如何使用lettuce配置多数据源
    这篇文章将为大家详细讲解有关springboot redis如何使用lettuce配置多数据源,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。springboot是什么springboot一种全新的编程规范...
    99+
    2023-06-14
  • springboot中如何配置多数据源
    这期内容当中小编将会给大家带来有关springboot中如何配置多数据源,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。一、建库建表1.1 创建数据库db1和数据库db21.2 在数据库db1中创建表db1...
    99+
    2023-06-15
  • springboot redis使用lettuce配置多数据源的实现
    目前项目上需要连接两个redis数据源,一个redis数据源是单机模式,一个redis数据源是分片集群模式,这里将具体配置列一下。 项目用的springboot版本为 &...
    99+
    2022-11-12
  • 使用SpringBoot配置多数据源的经验分享
    目录1. 引入jar包2. properties配置3. 分别配置两个数据源4. Dao目录5. Entity6. Mapper文件7. Controller测试8. 结果验证1. ...
    99+
    2022-11-13
  • ruoyi(若依)配置多数据源(mysql+postgresql),rouyi(Springboot)多数据源设置
    一、除了MySQL驱动,我们还需要用到postgresql的驱动,所以我们先把驱动的依赖给导入进来 org.postgresql postgresql ...
    99+
    2023-08-17
    mysql postgresql spring boot
  • springboot整合druid及多数据源配置
    前言 本篇主要分两部分 ①springboot整合druid的代码配置,以及druid的监控页面演示;②对实际场景中多数据源的配置使用进行讲解。 一、springboot整合druid的演示demo 可以用idea快速生成一个可运行的dem...
    99+
    2023-10-24
    spring boot java spring
  • springboot下配置多数据源的方法
    一、springboot 简介SpringBoot使开发独立的,产品级别的基于Spring的应用变得非常简单,你只需"just run"。 我们为Spring平台及第三方库提 供开箱即用的设置,这样你就可以有条不紊地开始。多...
    99+
    2023-05-31
    spring boot 多数据源
  • springboot整合多数据源配置方式
    目录简介一、表结构二、多数据源整合1. springboot+mybatis使用分包方式整合1.1 主要依赖包1.2 application.yml 配置文件1.3 建立连接数据源的...
    99+
    2022-11-12
  • springboot 如何配置多个jndi数据源
    springboot 配置多个jndi数据源 1.在application.properties中,添加jndi配置 如下图 2.新建dataSourceConfig类 3.d...
    99+
    2022-11-12
  • 怎么在SpringBoot中配置多数据源
    本篇文章为大家展示了怎么在SpringBoot中配置多数据源,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。多数据源配置首先是配置文件这里采用yml配置文件,其他类型配置文件同理我配置了两个数据源,一...
    99+
    2023-06-14
  • 详解SpringBoot和Mybatis配置多数据源
    目前业界操作数据库的框架一般是 Mybatis,但在很多业务场景下,我们需要在一个工程里配置多个数据源来实现业务逻辑。在SpringBoot中也可以实现多数据源并配合Mybatis框架编写xml文件来执行SQL。在SpringBoot中,配...
    99+
    2023-05-31
    springboot mybatis 多数据源
  • springboot+springJdbc+postgresql 实现多数据源的配置
    背景 最近公司在服务拆迁,接口转移,相同的功能接口到要迁移到对应的服务中,因为时间比较赶,别问为什么没给时间,没人,没资源,但是活还是得干的,为了减少工作量和稳妥的需要分两步走 ...
    99+
    2022-11-12
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作