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.Driver
test1.spring.datasource.jdbc-url=jdbc:mysql://localhost:3306/database1?useUnicode=true&characterEncoding=utf-8&useSSL=false&serverTimezone=GMT
test1.spring.datasource.username=username
test1.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)

相关推荐

  • Spring\SpringBoot配置连接数据库的方法

    Spring配置连接数据库 设置jdbc.properties jdbc.driverClassName=com.mysql.jdbc.Driver jdbc.url=jdbc:mysql://127.0.0.1:3306/SSM jdbc.username=root jdbc.password=root 创建配置类 /** * @Author: Promsing * @Date: 2021/5/30 - 14:52 * @Description:连接数据库的配置类 * @version: 1.

  • Springboot2.0配置JPA多数据源连接两个mysql数据库方式

    目录 1. 目录结构及配置 2. 配置文件 3. DataSourceConfigurer类 4. 主数据源配置 5. 从数据源配置 6.User实体类模板 7.dao层模板 8.service模板 9.IBaseService接口 1. 目录结构及配置 pom.xml(不要乱放太多,会引起jar冲突,亲身体验) <?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://m

  • 启动springboot应用因未配置数据库报错的解决方案

    目录 启动springboot应用因未配置数据库报错 描述 解决方案 springboot 1.5.8.RELEASE 版本启动报错 起因 错误排查 解决方法 启动springboot应用因未配置数据库报错 描述 创建一个全新的springboot项目,第一次启动时报错,具体错误信息如下所示: Error starting ApplicationContext. To display the conditions report re-run your application with 'debu

  • springboot 中 druid+jpa+MYSQL数据库配置过程

    Druid来自于阿里的一个开源连接池能够提供强大的监控和扩展功能,Spring Boot默认不支持Druid和jpa,需要引入依赖. 1.引入依赖包 <!--druid--> <!-- https://mvnrepository.com/artifact/com.alibaba/druid --> <dependency> <groupId>com.alibaba</groupId> <artifactId>druid</art

  • Springboot2 集成 druid 加密数据库密码的配置方法

    一:环境 springboot 2.x druid 1.1.21 二:druid加密数据库密码 本地下载druid-1.1.21.jar包,运行cmd,输入命令 java -cp jar包路径 com.alibaba.druid.filter.config.ConfigTools 数据库密码 java -cp druid-1.1.21.jar com.alibaba.druid.filter.config.ConfigTools 数据库密码 运行成功输出 privateKey:MIIBVAIBA

  • SpringBoot项目实现关闭数据库配置和springSecurity

    SpringBoot关闭数据库配置和springSecurity 通过exclude不注入数据源和安全验证模块 @SpringBootApplication(exclude={DataSourceAutoConfiguration.class, SecurityAutoConfiguration.class}) public class ErpApplication { public static void main(String[] args) { SpringApplication.run(

  • 方便快捷实现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使用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开发人员操

  • 使用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

  • SpringBoot项目中同时操作多个数据库的实现方法

    目录 1.导入相关pom文件 二.application.yml配置文件编写 三.数据库连接配置文件 四.主启动类注解修改 五.测试 在实际项目开发中可能存在需要同时操作两个数据库的场景,比如从A库读取数据,进行操作后往B库中写入数据,此时就需要进行多数据库配置.本文以操作本地和线上的MySQL数据库为例: 1.导入相关pom文件 <dependency> <groupId>mysql</groupId> <artifactId>mysql-connecto

  • springboot+mybatis通过实体类自动生成数据库表的方法

    前言 本章介绍使用mybatis结合mysql数据库自动根据实体类生成相关的数据库表. 首先引入相关的pom包我这里使用的是springboot2.1.8.RELEASE的版本 <dependency> <groupId>org.mybatis.spring.boot</groupId> <artifactId>mybatis-spring-boot-starter</artifactId> <version>2.1.0</ve

  • 用命令创建MySQL数据库(de1)的方法

    一.连接MYSQL 格式: mysql -h主机地址 -u用户名 -p用户密码 1. 连接到本机上的MYSQL. 首先打开DOS窗口,然后进入目录mysql\bin,再键入命令mysql -u root -p,回车后提示你输密码.注意用户 名前可以有空格也可以没有空格,但是密码前必须没有空格,否则让你重新输入密码. 如果刚安装好MYSQL,超级用户root是没有密码的,故直接回车即可进入到MYSQL中了,MYSQL的提示符是: mysql> 2.连接到远程主机上的MYSQL.假设远程主机的IP为

  • python访问mysql数据库的实现方法(2则示例)

    本文实例讲述了python访问mysql数据库的实现方法.分享给大家供大家参考,具体如下: 首先安装与Python版本匹配的MySQLdb 示例一 import MySQLdb conn=MySQLdb.connect(user='root',passwd='123',db='example') cur=conn.cursor() cur.execute("select id,lastname,firstname, date_format(dob,'%Y-%m-%d %H-%i-%s'),pho

随机推荐