方便快捷实现springboot 后端配置多个数据源、Mysql数据库

目录
  • 1)Test1DataSourceConfig.java
  • 2)Test2DataSourceConfig.java

1、修改application.properties

新建 Mapper、实体类 相应的文件夹,将不同数据源的文件保存到对应的文件夹下

# test1 数据库的配置 test1.spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver test1.spring.datasource.jdbc-url=jdbc:mysql://localhost:3306/database1?useUnicode=true&characterEncoding=utf-8&useSSL=false&serverTimezone=GMT test1.spring.datasource.username=usernametest1.spring.datasource.password=password # test2 数据库的配置test2.spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver test2.spring.datasource.jdbc-url=jdbc:mysql://localhost:3306/database2?useUnicode=true&characterEncoding=utf-8&useSSL=false&serverTimezone=GMT test2.spring.datasource.username=username test2.spring.datasource.password=password # 配置 mybatis 配置 mapper.xml 文件路径mybatis.mapper-locations=classpath:/mapper/*.xml,classpath:/mapper/test1/*.xml,classpath:/mapper/test2/*.xml # 配置 mybatis 配置 实体类 文件路径 mybatis.type-aliases-package=com.xxx.entity.test1, com.xxx.entity.test2

2、添加绑定数据库配置Config

1)Test1DataSourceConfig.java

package com.xxx.config.dataSource; import com.alibaba.druid.pool.DruidDataSource; import org.apache.ibatis.session.SqlSessionFactory; import org.mybatis.spring.SqlSessionFactoryBean; import org.mybatis.spring.annotation.MapperScan; import org.springframework.beans.factory.annotation.Qualifier; import org.springframework.beans.factory.annotation.Value; 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.DataSourceTransactionManager; import javax.sql.DataSource; /** * @program: test1 主数据源配置 * @author: JackLee * @create: 2020-08-09 09:30 * @version: 1.0 **/ // 扫描 Mapper 接口并容器管理 @MapperScan(basePackages = Test1DataSourceConfig.PACKAGE, sqlSessionFactoryRef = "test1SqlSessionFactory") @Configuration public class Test1DataSourceConfig { // 精确到 test1 目录,以便跟其他数据源隔离 static final String PACKAGE = "com.xxx.dao.test1"; static final String MAPPER_LOCATION = "classpath:mapper/test1/*.xml"; @Value("${test1.spring.datasource.jdbc-url}") private String url; @Value("${test1.spring.datasource.username}") private String user; @Value("${test1.spring.datasource.password}") private String password; @Value("${test1.spring.datasource.driver-class-name}") private String driverClass; @Bean(name = "test1DataSource") @Primary public DataSource test1DataSource() { DruidDataSource dataSource = new DruidDataSource(); dataSource.setDriverClassName(driverClass); dataSource.setUrl(url); dataSource.setUsername(user); dataSource.setPassword(password); return dataSource; } @Bean(name = "test1TransactionManager") @Primary public DataSourceTransactionManager test1TransactionManager() { return new DataSourceTransactionManager(test1DataSource()); } @Bean(name = "test1SqlSessionFactory") @Primary public SqlSessionFactory test1SqlSessionFactory(@Qualifier("test1DataSource") DataSource test1DataSource) throws Exception { final SqlSessionFactoryBean sessionFactory = new SqlSessionFactoryBean(); sessionFactory.setDataSource(test1DataSource); sessionFactory.setMapperLocations(new PathMatchingResourcePatternResolver() .getResources(Test1DataSourceConfig.MAPPER_LOCATION)); return sessionFactory.getObject(); } }

2)Test2DataSourceConfig.java

package com.xxx.config.dataSource; import com.alibaba.druid.pool.DruidDataSource; import org.apache.ibatis.session.SqlSessionFactory; import org.mybatis.spring.SqlSessionFactoryBean; import org.mybatis.spring.annotation.MapperScan; import org.springframework.beans.factory.annotation.Qualifier; import org.springframework.beans.factory.annotation.Value; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.core.io.support.PathMatchingResourcePatternResolver; import org.springframework.jdbc.datasource.DataSourceTransactionManager; import javax.sql.DataSource; /** * @program: test2 其他数据源配置 * @author: JackLee * @create: 2020-08-09 09:30 * @version: 1.0 **/ // 扫描 Mapper 接口并容器管理 @MapperScan(basePackages = Test2DataSourceConfig.PACKAGE, sqlSessionFactoryRef = "test2SqlSessionFactory") @Configuration public class Test2DataSourceConfig { // 精确到 test2 目录,以便跟其他数据源隔离 static final String PACKAGE = "com.xxx.dao.test2"; static final String MAPPER_LOCATION = "classpath:mapper/test2/*.xml"; @Value("${test2.spring.datasource.jdbc-url}") private String url; @Value("${test2.spring.datasource.username}") private String user; @Value("${test2.spring.datasource.password}") private String password; @Value("${test2.spring.datasource.driver-class-name}") private String driverClass; @Bean(name = "test2DataSource") public DataSource test2DataSource() { DruidDataSource dataSource = new DruidDataSource(); dataSource.setDriverClassName(driverClass); dataSource.setUrl(url); dataSource.setUsername(user); dataSource.setPassword(password); return dataSource; } @Bean(name = "test2TransactionManager") public DataSourceTransactionManager test2TransactionManager() { return new DataSourceTransactionManager(test2DataSource()); } @Bean(name = "test2SqlSessionFactory") public SqlSessionFactory test2SqlSessionFactory(@Qualifier("test2DataSource") DataSource test2DataSource) throws Exception { final SqlSessionFactoryBean sessionFactory = new SqlSessionFactoryBean(); sessionFactory.setDataSource(test2DataSource); sessionFactory.setMapperLocations(new PathMatchingResourcePatternResolver() .getResources(Test2DataSourceConfig.MAPPER_LOCATION)); return sessionFactory.getObject(); } }

搞定,轻轻松松~

注:

  • mapper文件夹下新建的文件夹需要有 *.xml 文件( 即:classpath:/mapper/xxx/*.xml下要存在文件 ),不然可能
  • 检测不到需要继续添加数据源就再加一个其他数据源

以上就是方便快捷实现springboot 后端配置多个数据源、Mysql数据库的详细内容,更多关于springboot 后端配置多个数据源、Mysql数据库的资料请关注我们其它相关文章!,希望大家以后多多支持我们!

(0)

相关推荐

  • Springboot上传excel并将表格数据导入或更新mySql数据库的过程

    本文主要描述,Springboot-mybatis框架下上传excel,并将之导入mysql数据库的过程,如果用户id已存在,则进行更新修改数据库中该项信息,由于用到的是前后端分离技术,这里记录的主要是后端java部分,通过与前端接口进行对接实现功能,使用layui等前端框架与之对接,也可以自己写前端代码,本文以Controller开始,从导入过程开始讲述,其中包括字典表的转换 1.在pom.xml文件中导入注解,主要利用POI <dependency> <groupId>org.

  • 解决springboot 连接 mysql 时报错 using password: NO的方案

    最近使用 springboot 配置 mysql 时出现了一个错误 Access denied for user ''@'localhost' (using password: YES) 或者 Access denied for user ''@'localhost' (using password: NO) 经发现这是 springboot 中 yml 语法的的一个坑,在我现在用的最新版本2.2.4 的springBoot中所推荐 yml 的格式是 data-username: root da

  • springboot基于Mybatis mysql实现读写分离

    近日工作任务较轻,有空学习学习技术,遂来研究如果实现读写分离.这里用博客记录下过程,一方面可备日后查看,同时也能分享给大家(网上的资料真的大都是抄来抄去,,还不带格式的,看的真心难受). 完整代码:https://github.com/FleyX/demo-project/tree/master/dxfl 1.背景 一个项目中数据库最基础同时也是最主流的是单机数据库,读写都在一个库中.当用户逐渐增多,单机数据库无法满足性能要求时,就会进行读写分离改造(适用于读多写少),写操作一个库,读操作多个库

  • SpringBoot连接MYSQL数据库并使用JPA进行操作

    今天给大家介绍一下如何SpringBoot中连接Mysql数据库,并使用JPA进行数据库的相关操作. 步骤一:在pom.xml文件中添加MYSQl和JPA的相关Jar包依赖,具体添加位置在dependencies中,具体添加的内容如下所示. <!--数据库相关配置--> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-

  • 方便快捷实现springboot 后端配置多个数据源、Mysql数据库

    目录 1)Test1DataSourceConfig.java 2)Test2DataSourceConfig.java 1.修改application.properties 新建 Mapper.实体类 相应的文件夹,将不同数据源的文件保存到对应的文件夹下 # test1 数据库的配置 test1.spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver test1.spring.datasource.jdbc-url=jdbc:m

  • springboot后端配置多个数据源、Mysql数据库的便捷方法

    目录 1.修改application.properties 2.添加绑定数据库配置Config 1)Test1DataSourceConfig.java 2)Test2DataSourceConfig.java 1.修改application.properties 新建 Mapper.实体类 相应的文件夹,将不同数据源的文件保存到对应的文件夹下 # test1 数据库的配置 test1.spring.datasource.driver-class-name=com.mysql.cj.jdbc.D

  • SpringBoot自定义注解使用读写分离Mysql数据库的实例教程

    需求场景 为了防止代码中有的SQL慢查询,影响我们线上主数据库的性能.我们需要将sql查询操作切换到从库中进行.为了使用方便,将自定义注解的形式使用. mysql导入的依赖 <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version>8.0.16</version> </dependency&

  • 使用IDEA配置Tomcat和连接MySQL数据库(JDBC)详细步骤

    IDEA配置Tomcat 1,点击Run-EDit Configurations- 2.点击左侧"+"号,找到Tomcat Server-Local(若是没有找到Tomcat Server 可以点击最后一行 34 items more) 3.在Tomcat Server -> local-> Server -> Application server项目下,点击 Configuration ,找到本地 Tomcat 服务器,再点击 OK按钮. 至此,IntelliJ I

  • IDEA使用JDBC安装配置jar包连接MySQL数据库

    一 .MySQL版本查询 1)登录mysql 首先Window+R ​然后在命令行里输入 mysql -u此处填你的mysql账号(注意要加-u) -p(此处是填写密码) 以我的为例 mysql -uroot -prota ​显示这样之后登录成功 2)查询版本号 select version(); mysql> select version();+-----------+| version() |+-----------+| 5.5.56    |+-----------+1 row in se

  • IDEA使用JDBC导入配置jar包连接MySQL数据库

    目录 jdbc编程简介 1.导入jar包 2.建立数据库连接 2.1创建数据源描述数据库服务器在哪 2.2实现一个mysql客户端通过网络和服务器进行通信 3.使用代码操作数据库 3.1增删改操作 3.2查询操作 4.断开连接释放资源 jdbc编程简介 JDBC,Java Database Connectivity ,java数据库连接.是一种执行SQL语句的API,是java中数据库连接规范,这个API由java.sql.*,javax.sql.*包中的一些类和接口组成,它为Java开发人员操

  • SpringBoot后端接口的实现(看这一篇就够了)

    摘要:本文演示如何构建起一个优秀的后端接口体系,体系构建好了自然就有了规范,同时再构建新的后端接口也会十分轻松. 一个后端接口大致分为四个部分组成:接口地址(url).接口请求方式(get.post等).请求数据(request).响应数据(response).如何构建这几个部分每个公司要求都不同,没有什么"一定是最好的"标准,但一个优秀的后端接口和一个糟糕的后端接口对比起来差异还是蛮大的,其中最重要的关键点就是看是否规范! 本文就一步一步演示如何构建起一个优秀的后端接口体系,体系构建

  • IDEA SpringBoot 项目配置Swagger2的详细教程

    原先前后端分离的api文档开启了前后端相互撕逼的对接之路 api更新不及时导致对接失败,以及存在测试不够方便,而swagger则很好的解决了这个问题 在项目中也经常用到swagger2,于是动手记录一下swagger2配置过程,希望能带来一点帮助. 在SpringBoot项目当中使用Swagger主要分为以下几步: 1.SpringBoot-web项目并添加pom.xml依赖 2.编写HelloController,测试成功运行 3.创建一个SwaggerConfig类,配置swagger-ui

  • SpringBoot全局配置long转String丢失精度的问题解决

    目录 第一种方式 第二种方式 第三种方式 第四种方式(缺点:将所有的数字类型都会转为字符串) web项目中,Java后端传过来的Long/long类型,前端JS接收会丢失精度. 本文推荐第三.第四种方式 第一种方式 简单粗暴,将所有的Lang类型,改为String,数据库改成varchar类型: 第二种方式 自己建个配置类 extends WebMvcConfigurerAdapter 已经被弃用,直接实现WebMvcConfigurer该接口就行了 @EnableWebMvc @Configu

  • 解决springboot 无法配置多个静态路径的问题

    目录 springboot 无法配置多个静态路径 需要在启动类里加一段代码如下: springboot静态路径配置遇到的坑 按照网上一些博客的说法 解决方法 springboot 无法配置多个静态路径 默认static路径是可以访问的, 对接天猫精灵需要额外的放开一个目录aligenie,供天猫精灵端访问,且路径名称无法更改. 这就导致了一个问题,默认识别的静态路径META-INF/resources / resources / static / public 都是spring boot 认为静

随机推荐