iis服务器助手广告广告
返回顶部
首页 > 资讯 > 后端开发 > Python >springboot如何连接两个数据库(多个)
  • 370
分享到

springboot如何连接两个数据库(多个)

2024-04-02 19:04:59 370人浏览 泡泡鱼

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

摘要

目录一、启动类二、application.yml文件三、创建配置类四 、结构五、多数据源的事物问题一、启动类 1.启动类需要不用加mybatis的@MapperScan注解 @Spr

一、启动类

1.启动类需要不用加mybatis的@MapperScan注解

@SpringBootApplication
public class AppPush {
    public static void main(String[] args) {
        springApplication.run(AppPush.class,args);
    }
}

二、application.yml文件

配置俩个或多个数据库连接,我这里用的是postgresql,用Mysql等也是一样

spring:
  datasource:
#    driver-class-name: org.postgresql.Driver
#    url: jdbc:postgresql://127.0.0.1/aaa
#    username: root
#    passWord: root
      one:
        driver-class-name: org.postgresql.Driver
        url: jdbc:postgresql://127.0.0.1/aaa
        username: root
        password: root
      two:
        driver-class-name: org.postgresql.Driver
        url: jdbc:postgresql://127.0.0.1/bbb
        username: root
        password: root

三、创建配置类

1.注意:@MapperScan 的basePackages就是你包的路径 ,

sqlSessionFactoryRef 可以随便起名 但是着两个类不能重复!

One配置类

package com.wys.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.beans.factory.annotation.Value;
import org.springframework.boot.autoconfigure.jdbc.DataSourceBuilder;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.Primary;
import org.springframework.core.io.support.PathMatchingResourcePatternResolver;
import org.springframework.jdbc.datasource.DriverManagerDataSource;
import javax.sql.DataSource;

@Configuration
@MapperScan(basePackages = "com.wys.mapper.**", sqlSessionFactoryRef = "oneSqlSessionFactory")
public class OneDataSourceConfig {
    @Value("${spring.datasource.one.driver-class-name}")
    String driverClass;
    @Value("${spring.datasource.one.url}")
    String url;
    @Value("${spring.datasource.one.username}")
    String userName;
    @Value("${spring.datasource.one.password}")
    String passWord;
    @Primary
    @Bean(name = "oneDataSource")
    @ConfigurationProperties("spring.datasource.one")
    public DataSource masterDataSource() {
        DriverManagerDataSource dataSource = new DriverManagerDataSource();
        dataSource.setDriverClassName(driverClass);
        dataSource.setUrl(url);
        dataSource.setUsername(userName);
        dataSource.setPassword(passWord);
        return dataSource;
    }
    @Bean(name = "oneSqlSessionFactory")
    public SqlSessionFactory sqlSessionFactory(@Qualifier("oneDataSource") DataSource dataSource) throws Exception {
        SqlSessionFactoryBean sessionFactoryBean = new SqlSessionFactoryBean();
        sessionFactoryBean.setDataSource(dataSource);
        sessionFactoryBean.setMapperLocations(new PathMatchingResourcePatternResolver()
                .getResources("classpath:mybatis/mapper-postgre
@Configuration
@MapperScan(basePackages = "com.wys.mappers",sqlSessionFactoryRef = "twoSqlSessionFactory")
public class TwoDataSourceConfig {
    @Value("${spring.datasource.two.driver-class-name}")
    String driverClass;
    @Value("${spring.datasource.two.url}")
    String url;
    @Value("${spring.datasource.two.username}")
    String userName;
    @Value("${spring.datasource.two.password}")
    String passWord;
    
    @Bean(name = "twoDataSource")
    @ConfigurationProperties("spring.datasource.two")
    public DataSource masterDataSource(){
        DriverManagerDataSource dataSource = new DriverManagerDataSource();
        dataSource.setDriverClassName(driverClass);
        dataSource.setUrl(url);
        dataSource.setUsername(userName);
        dataSource.setPassword(passWord);
        return dataSource;
    }
    @Bean(name = "twoSqlSessionFactory")
    public SqlSessionFactory sqlSessionFactory(@Qualifier("twoDataSource") DataSource dataSource) throws Exception {
        SqlSessionFactoryBean sessionFactoryBean = new SqlSessionFactoryBean();
        sessionFactoryBean.setDataSource(dataSource);
        sessionFactoryBean.setMapperLocations(new PathMatchingResourcePatternResolver()
                .getResources("classpath:mybatis/mapper-postgres/*.xml"));         
        return sessionFactoryBean.getObject();
    }
    
    @Bean(name = "twoSqlSessionTemplate")
    public SqlSessionTemplate sqlSessionFactoryTemplate(@Qualifier("twoSqlSessionFactory")SqlSessionFactory sqlSessionFactory ) throws Exception {
        return new SqlSessionTemplate(sqlSessionFactory);
    }
}

四 、结构

可能有人不清楚项目的结构,我在下面放了一张类结构图,能更清晰和方便理解。

注意:和之前的项目的主要区别就是 mapper包多了一个,mapper的xml包也多了一个,不同的数据库mapper放到不同的包内就可以了。

类结构

五、多数据源的事物问题

在使用多数据源时,有可能会遇到事物失败的问题。我单独总结了一个文章。需要的话可以阅读一下。@Transactional注解异常报错之多数据源.

以上为个人经验,希望能给大家一个参考,也希望大家多多支持编程网。

--结束END--

本文标题: springboot如何连接两个数据库(多个)

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

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

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

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

下载Word文档
猜你喜欢
  • springboot如何连接两个数据库(多个)
    目录一、启动类二、application.yml文件三、创建配置类四 、结构五、多数据源的事物问题一、启动类 1.启动类需要不用加mybatis的@MapperScan注解 @Spr...
    99+
    2024-04-02
  • springboot怎么连接两个数据库
    这篇“springboot怎么连接两个数据库”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“springboot怎么连接两个数...
    99+
    2023-06-29
  • redis缓存如何连接两个数据库
    Redis缓存可以连接两个数据库,一种常见的方式是使用Redis的多数据库功能。Redis支持多个数据库,每个数据库都有一个唯一的数...
    99+
    2023-08-30
    redis 数据库
  • 如何用Jfinal连接多个数据库
    目录1. 添加mssql-jdbc-7.4.1.jar和mysql-connector-java-8.0.12.jar分别用于连接sqlserver及mysql数据库。2. 添加数据...
    99+
    2024-04-02
  • Springboot2.0配置JPA多数据源连接两个mysql数据库方式
    目录1. 目录结构及配置2. 配置文件3. DataSourceConfigurer类4. 主数据源配置5. 从数据源配置6.User实体类模板7.dao层模板8.service模板...
    99+
    2024-04-02
  • spring怎么连接多个数据库
    在Spring中,可以使用多个数据源来连接多个数据库。下面是一些步骤:1. 在application.properties或appl...
    99+
    2023-10-20
    spring 数据库
  • python2.7能不能同时连接两个数据库
    本篇内容主要讲解“python2.7能不能同时连接两个数据库”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“python2.7能不能同时连接两个数据库”吧!一、前言这个问题是本人在开发的时候,遇到...
    99+
    2023-06-02
  • springboot之如何同时连接多个redis
    目录技术选型 Springboot连接reids的三个客户端代码部分maven pom引用application.yml配置Configuration代码启动失败日志启动成...
    99+
    2023-05-16
    springboot连接多个redis springboot连接redis springboot redis
  • 使用Jfinal怎么连接多个数据库
    本篇文章为大家展示了使用Jfinal怎么连接多个数据库,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。 添加mssql-jdbc-7.4.1.jar和mysql-connector-java-8.0....
    99+
    2023-06-14
  • 使用Spring MVC如何实现将java项目连接两个数据库
    使用Spring MVC如何实现将java项目连接两个数据库?针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。实现方法:数据源在配置文件中的配置<pre name=&qu...
    99+
    2023-05-31
    springmvc java 数据库
  • 使用SqlSugar连接多个数据库(sqlserver,sqlite,mysql)
        有时候,一个项目只有一个数据库,比如只有SQLite,或者MySQL数据库,那么我们只需要使用一个固定的数据库即可。但是一个项目如果写好了,有多个用户使用,但是多个用户使用不同的数据库,这个时候,我们就需要把软件设计成可以连接多个数...
    99+
    2023-09-02
    数据库
  • Springboot如何同时装配两个相同类型数据库
    目录同时装配两个相同类型数据库配置连接两个或多个数据库同时装配两个相同类型数据库 1.配置文件: spring: profiles: active: dev ...
    99+
    2024-04-02
  • springboot怎么处理多个连接
    Spring Boot可以使用多个连接的方式来处理,可以通过多线程、连接池等方式来实现。一种常见的方式是使用线程池来处理多个连接。可...
    99+
    2023-10-11
    springboot
  • 如何在阿里云虚拟主机上连接多个数据库
    在阿里云虚拟主机上,如果您需要处理多个数据库,那么如何连接多个数据库就显得尤为重要。本文将详细阐述如何在阿里云虚拟主机上连接多个数据库,并提供相应的实例代码。 一、引言随着互联网的发展,数据库在数据处理中的地位越来越重要。在阿里云虚拟主机上...
    99+
    2023-10-30
    多个 阿里 虚拟主机
  • Django项目怎么配置连接多个数据库
    今天小编给大家分享一下Django项目怎么配置连接多个数据库的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。一个APP对应一个...
    99+
    2023-06-30
  • SpringBoot项目中如何同时操作多个数据库
    本篇内容主要讲解“SpringBoot项目中如何同时操作多个数据库”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“SpringBoot项目中如何同时操作多个数据库”吧!在实际项目开发中可能存在需要...
    99+
    2023-06-29
  • 使用springboot如何实现配置多个redis连接
    这篇文章将为大家详细讲解有关使用springboot如何实现配置多个redis连接,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。一、springboot nosql 简介Spring Dat...
    99+
    2023-05-31
    springboot redis
  • 数据库是如何重建连接从15000个到100个以下
    这篇文章主要讲解了“数据库是如何重建连接从15000个到100个以下”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“数据库是如何重建连接从15000个到100...
    99+
    2024-04-02
  • springboot 如何配置多个jndi数据源
    springboot 配置多个jndi数据源 1.在application.properties中,添加jndi配置 如下图 2.新建dataSourceConfig类 3.d...
    99+
    2024-04-02
  • SpringBoot多数据库连接(mysql+oracle)的实现
    出于业务需求,有时我们需要在spring boot web应用程序中配置多个数据源并连接到多个数据库。 使用过Spring Boot框架的小伙伴们,想必都发现了Spring Boot...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作