SpringBoot项目中如何同时操作多个数据库
发表于:2026-11-02 作者:千家信息网编辑
千家信息网最后更新 2026年11月02日,本篇内容主要讲解"SpringBoot项目中如何同时操作多个数据库",感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习"SpringBoot项目中如何同时操作多个
千家信息网最后更新 2026年11月02日SpringBoot项目中如何同时操作多个数据库
本篇内容主要讲解"SpringBoot项目中如何同时操作多个数据库",感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习"SpringBoot项目中如何同时操作多个数据库"吧!
在实际项目开发中可能存在需要同时操作两个数据库的场景,比如从A库读取数据,进行操作后往B库中写入数据,此时就需要进行多数据库配置。本文以操作本地和线上的MySQL数据库为例:
1、导入相关pom文件
mysql mysql-connector-java runtime org.springframework.boot spring-boot-starter-jdbc org.mybatis mybatis 3.5.5 com.alibaba druid 1.2.3 org.mybatis mybatis-spring 2.0.7 org.projectlombok lombok true
二、application.yml配置文件编写
单数据源的配置如下:
spring: datasource: driver-class-name: com.mysql.cj.jdbc.Driver url: jdbc:mysql://127.0.0.1:3306/meal_order?useSSL=false&useUnicode=true&characterEncoding=UTF-8&serverTimezone=GMT%2B8 username: root password: root type: com.alibaba.druid.pool.DruidDataSource
多数据源的配置如下:
spring: datasource: dev: driver-class-name: com.mysql.cj.jdbc.Driver jdbcUrl: jdbc:mysql://xxx.xx.xx.xx:3306/meal_order?useSSL=false&useUnicode=true&characterEncoding=UTF-8&serverTimezone=GMT%2B8 username: root password: root type: com.alibaba.druid.pool.DruidDataSource local: driver-class-name: com.mysql.cj.jdbc.Driver jdbcUrl: jdbc:mysql://127.0.0.1:3306/db2021?useSSL=false&useUnicode=true&characterEncoding=UTF-8&serverTimezone=GMT%2B8 username: root password: root type: com.alibaba.druid.pool.DruidDataSource
经过对比可以发现:
1、多数据源的配置中需要指定具体的名称来区分不同的数据库(上述配置中的dev和local,名称可以根据具体需求自定义)
2、需要使用jdbcUrl代替url
三、数据库连接配置文件
dev数据源配置文件:
@Configuration@MapperScan(basePackages = "com.multiple.mapper.dev",sqlSessionFactoryRef = "devSqlSessionFactory")public class DevDataSourceConfig { @Primary @Bean(name = "devDataSource") @ConfigurationProperties("spring.datasource.dev") public DataSource masterDataSource(){ return DataSourceBuilder.create().build(); } @Bean(name = "devSqlSessionFactory") public SqlSessionFactory sqlSessionFactory(@Qualifier("devDataSource") DataSource dataSource) throws Exception { SqlSessionFactoryBean sessionFactoryBean = new SqlSessionFactoryBean(); sessionFactoryBean.setDataSource(dataSource); sessionFactoryBean.setMapperLocations(new PathMatchingResourcePatternResolver() .getResources("classpath:mapping/dev/*.xml")); return sessionFactoryBean.getObject(); }}local数据源配置文件:
@Configuration@MapperScan(basePackages = "com.multiple.mapper.local",sqlSessionFactoryRef = "localSqlSessionFactory")public class LocalDataSourceConfig { @Primary @Bean(name = "localDataSource") @ConfigurationProperties("spring.datasource.local") public DataSource masterDataSource(){ return DataSourceBuilder.create().build(); } @Bean(name = "localSqlSessionFactory") public SqlSessionFactory sqlSessionFactory(@Qualifier("localDataSource") DataSource dataSource) throws Exception { SqlSessionFactoryBean sessionFactoryBean = new SqlSessionFactoryBean(); sessionFactoryBean.setDataSource(dataSource); sessionFactoryBean.setMapperLocations(new PathMatchingResourcePatternResolver() .getResources("classpath:mapping/local/*.xml")); return sessionFactoryBean.getObject(); }}不同配置文件通过@MapperScan注解的内容来区分不同数据库下的mapper文件,通过@ConfigurationProperties注解来加载指定的数据源
以DevDataSourceConfig为例
四、主启动类注解修改
@SpringBootApplication(exclude={DataSourceAutoConfiguration.class})目录结构如下:
五、测试
从dev库中查询数据,取出字段插入local库中:
public interface DevMapper { @Select("select * from test") List getAllTest();} public interface LocalMapper { @Insert("insert into payment(serial) values (#{name})") int insertMessage(String name);}@SpringBootTestclass MultipleDatabaseApplicationTests { @Autowired private DevMapper devMapper; @Autowired private LocalMapper localMapper; @Test void contextLoads() { List testList = devMapper.getAllTest(); for(com.multiple.pojo.Test test : testList){ localMapper.insertMessage(test.getAa()); } }} 运行测试代码,从dev库中查出的数据可以成功添加至local库
该方法也适用需要使用多种不同的数据库的场景,比如MySQL和Oracle,修改数据源配置文件即可
到此,相信大家对"SpringBoot项目中如何同时操作多个数据库"有了更深的了解,不妨来实际操作一番吧!这里是网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!
数据
配置
数据库
文件
数据源
同时
项目
不同
多个
内容
注解
名称
场景
实际
方法
学习
查询
测试
实用
更深
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
精品咖啡豆
科技互联网政务服务
互联网 科技
易互联网科技有限公司
齐家互联网科技
郑州华宇互联网科技
互联网科技公司名称
互联网科技公司招聘
中盈科技互联网信息有限公司
福州新华互联网科技学校 知乎
移动互联网年度科技创新
注册互联网科技公司经营范围大全
银川新华互联网科技学校联系电话
长沙茂晟互联网科技有限公司
保险科技服务互联网营销体系
九思连强互联网电子科技有限公司
福州德业互联网科技
福仕德教育科技互联网
黑龙江互联网科技公司
互联网 科技节活动 微视频大赛
互联网科技名片
科技互联网企业
科技股互联网
科技互联网项目
新浪科技互联网
互联网科技logo
成都玖崟互联网科技有限公司乐商圈怎么样
互联网安防科技感
工业互联网科技创业
互联网科技企业商标注意事项