spring boot同时连接两个数据库

【Spring Boot 27】Springboot配置两个数据库(附代码+源码分析) 对于面试还是要好好准备的,尤其是有些问题还是很容易挖坑的,例如你为什么离开现在的公司(你当然不应该抱怨现在的公司有哪些不好的地方,更多的应该表明自己想要寻找更好的发展机会,自己的一些现实因素,比如对于我而言是现在应聘的公司离自己的家更近,又或者是自己工作到达了迷茫期,想跳出迷茫期等等)Java面试精选题、架构实战文档你的支持,我的动力;祝各位前程似锦,offer不断!一个人可以走的很快,但一群人才能走的更远。 阅读详情
AI摘要

本文介绍如何在Spring Boot项目中实现本地服务器与云服务器上的SQL Server数据库的连接与操作,包括多数据源配置、数据库挂载及具体代码示例。

一、需求说明

        1. 项目要求同时操作两个数据库,一个在本地服务器,一个在云服务器。

        2. 两个数据库均为SQL server数据库。

二、实现

        1. 在pom中导入多数据源依赖

        <dependency>
            <groupId>com.baomidou</groupId>
            <artifactId>dynamic-datasource-spring-boot-starter</artifactId>
            <version>3.6.0</version>
        </dependency>

        2. 在application.yml中配置数据库

spring:
  datasource:
    dynamic:
      type: com.alibaba.druid.pool.DruidDataSource
      strict: false
      datasource:
        master:
          driverClassName: com.microsoft.sqlserver.jdbc.SQLServerDriver
          password: password
          url: jdbc:sqlserver://localhost:1433;databaseName=name;encrypt=true;trustServerCertificate=true
          username: username
        cloud:
          driverClassName: com.microsoft.sqlserver.jdbc.SQLServerDriver
          password: password
          url: jdbc:sqlserver://ip:端口;databaseName=name;encrypt=true;trustServerCertificate=true
          username: username

注意:database需要指定主数据库(默认数据库)即master,不然在项目启动时会出现警告;第二个数据库名字随意,你也可以叫cloud1、cloud2.....

        3. 挂载数据库

在ServiceImpl中使用注解@DS(""),表明需要操作哪个数据库。如果没有使用@DS,spring将默认使用master数据库:

@Service("userService_C")
@DS("cloud")
public class UserServiceImpl_C implements UserService_C {
    @Resource
    private UserMapper userMapper;
    @Override
    public List<User> selectUser(String where) {
        return userMapper.selectUser(where);
    }
}

注意:@DS不一定要在ServiceImpl中使用,同样可以在mapper、service接口使用

        4. 具体Demo

1)目录结构:

2)UserMapper:
@Mapper
public interface UserMapper {
    @Select({"select * from User_loginData where 1=1 ${where}"})
    List<User> selectUser(@Param("where")String where);

}
3)UserService_C && UserService_L:
public interface UserService_C {
    List<User> selectUser(String where);
}

public interface UserService_L {
    List<User> selectUser(String where);
}
4)UserServiceImpl_C && UserServiceImpl_C:
@Service("userService_C")
@DS("cloud")
public class UserServiceImpl_C implements UserService_C {
    @Resource
    private UserMapper userMapper;
    @Override
    public List<User> selectUser(String where) {
        return userMapper.selectUser(where);
    }
}

@Service("userService_L")
public class UserServiceImpl_L implements UserService_L {
    @Resource
    private UserMapper userMapper;
    @Override
    public List<User> selectUser(String where) {
        return userMapper.selectUser(where);
    }
}

5)UserController:

@RestController
@RequestMapping("/user")
public class UserController {
    @Resource
    private UserService_L l_userService = new UserServiceImpl_L();
    @Resource
    private UserService_C c_userService = new UserServiceImpl_C();

    @RequestMapping(value = "/userList")
    public String addPre() {
        String msg = "";
        try {
            List<User> c_users = c_userService.selectUser("and userId = 12");
            List<User> l_users = l_userService.selectUser("and userId = 12");
            System.out.println("云服务器最后登录时间:"+c_users.get(0).getUserLoginTime());
            System.out.println("本地服务器最后登录时间:"+l_users.get(0).getUserLoginTime());
        }catch (Exception e){
            System.out.println(e.getMessage());
        }
        return msg;
    }
}

        5. 运行结果

Spring Boot 项目集成达梦数据库:基于 db-migration 的 Flyway/Liquibase 与 Flowable 实战指南 本文详细介绍了如何在Spring Boot项目中集成达梦数据库(DM),并结合db-migration解决Flyway/Liquibase的适配问题,以及Flowable工作流引擎的实战应用。通过具体的配置示例和最佳实践,帮助开发者高效实现国产数据库与流行框架的整合,提升企业级应用开发效率。 阅读详情

相关推荐

Java面试题之在ssm项目中如何同时连接两个数据库

在 SSM 项目中,可以通过配置多个数据源来连接多个数据库。下面以 Spring Boot 为例,介绍如何同时连接两个数据库。然后在 Spring Boot 应用程序中,我们可以定义多个 DataSource Bean,并指定对应的数据源信息。Spring Boot 中内置了多个 DataSource 类型,如 HikariDataSource、TomcatDataSource、DBCP2DataSource 等。

weixin_49116772的博客 2261

Springboot连接两个数据库

一个SpringBoot项目,同时连接两个数据库:比如一个是pgsql数据库,一个是oracle数据库(啥数据库都一样,连接两个同为oracle的数据库,或两个不同的数据库,只需要更改对应的。注意:主数据库不需要加@Transactional(value = "SalverTransactionManager")从数据库需要添加。等即可)注意:连接什么数据库,要引入对应数据库的包。这里一定要创建,不然会报错。...

心之所向博客 7647

Spring同时集成JPA与Mybatis

ORM ORM的出现,使得关系型数据库映射成了对象;简单来说,有了ORM之后,JAVA程序员从面向JDBC编程转化成面向JAVA对象编程。 Spring ORM Spring对ORM的解决方案主要体现在以下方面: 统一的资源管理方式与异常管理:Spring使用各种ORM框架,资源管理及使用方式都是统一的;同时Spring会将各个ORM框架的异常转译到Spring异常体系下。 统一的事务管理:Spring通过IoC和AOP技术,形成了事务管理抽象层,接管了各种ORM框架下的数据访问的事务管理。

weixin_47082274的博客 2697

springboot连接多个库

一个SpringBoot项目,同时连接两个数据库:比如一个是Mysql数据库,一个是oracle数据库(啥数据库都一样,连接两个同为oracle的数据库,或两个不同的数据库,只需要更改对应的driver-class-name和jdbc-url等即可)注意:连接什么数据库,要引入对应数据库的包。

sunyingboaini的博客 4654

Spring boot 同时连接达梦6和达梦7数据库

【代码】Spring boot 同时连接达梦6和达梦7数据库。

qq_39132795的博客 881

Silvaco Atlas(五)——物理模型总结

物理模型总结

qsz1425AWD2121的博客 2153

jpa 连接多个mysql 数据库_Spring boot通过JPA和Mybatis同时连接2个关系数据库的例子...

最近在研究的Spring-Boot 是一个非常不错的框架,可以和很多Spring家族的其他框架结合,实现快速开发Production-Ready的程序,但是一般网上都是用JPA作为数据库的主要操作方式,常用Mybatis比较少自己写了一个通过Spring-Data-JPA和MyBatis同时连接2种数据库的例子,供大家参考,】如果有更好的实现方式,也请赐教,谢谢项目地址:#spring-boot-...

weixin_30974373的博客 322

初级文章【西门子】字符拼接成字符串

针对S7-400极其以下PLC,1200往上据说有专门的块了呢,首先,我是不用库的,需要什么函数会自己写,OK进入正题。 首先,我们有一个DB块,里面有14个char,一个14位的char数组和一个14位的string。如下图。 我们的目的是将char1-char10拼接成一个string。 第一种方式:第一步,将char放进数组。 ​​​​​​​ 相信大家都能看明白,但是我还是要解释解释 L取值2 T赋值到临时变量DBNO(INT) OPN DB [#DBNO]获取DB块,这一句.

NS_Speak(IVAV) 1万+

Spring boot通过JPA和Mybatis同时连接2个关系数据库的例子

2019独角兽企业重金招聘Python工程师标准>>> ...

weixin_34303897的博客 237

地震数据可视化必备:5分钟读懂SEGY道头字段全解析(含坐标定位指南)

本文深入解析了SEGY文件格式中道头坐标字段的提取与可视化方法。针对地震数据处理中的常见痛点,详细介绍了sx/sy、gx/gy等关键坐标字段的二进制解析、比例因子应用、单位转换及常见问题解决方案,并提供了实用的Python代码示例,帮助开发者实现从SEGY文件到三维空间可视化的完整流程。

echo99的专栏 1014

[RK3568][Android11.0]Vold-DiskInfo:区分u盘和硬盘

测试平台 Platform: RK3568 OS: Android 11.0 需求描述 目前系统内部设备没有对硬盘(sata/usb移动硬盘)和u盘做区分,统一显示的为usb存储设备.目前有需求要在显示上有所区分。 解决方案 如何区分移动硬盘和U盘,见Android usb设备的检测及区分(sata硬盘、优盘及移动硬盘).主要就是检测removeable值,为0:硬盘,为1:u盘 解决补丁如下 From 572cf35c07f68c5cb5defe40c536dd9ad1b4648e Mon Sep 17

weixin_39966398的博客 1897

【多数据源配置】Spring Boot如何同时连接操作多个MySQL数据库?

在Spring Boot中配置多数据源需要明确区分不同数据源的配置、实体扫描路径及事务管理。

bnftg46的博客 263

无人机精准降落辅助系统核心技术解析

接近地面时(<10米)切换至基于图像的视觉伺服(IBVS),依据图像特征点偏移(如靶标图案、LED标记)微调姿态,消除位置累积误差。通过SRUKF(平方根无迹卡尔曼滤波) 算法融合三类数据,输出6自由度位姿估计(精度达厘米级),抑制单一传感器噪声。权值根据信噪比动态调整。模型预测控制(MPC):针对斜坡降落,构建包含平台倾角、风扰的动力学方程,滚动求解最优油门序列。动态照明适配:针对夜间或低光照场景,系统向降落平台发送亮度调节指令,如增强红外信标强度或调整可见光LED阵列,确保特征识别鲁棒性。

YUNZHUO666的博客 1699

Chat2DB后端核心技术:Spring Boot多数据库插件体系详解

Chat2DB作为一款智能化的通用SQL客户端和数据报表工具,其核心能力在于支持超过16种主流数据库的统一管理和操作。这一切的背后,是一个基于Spring Boot构建的精巧多数据库插件体系。本文将深入解析这一技术架构的设计思想、实现原理和最佳实践。 ## 架构设计理念 ### 插件化架构优势 Chat2DB采用插件化架构设计,主要基于以下考虑: - **可扩展性**:支持快速接入新的数据...

gitblog_00758的博客 934

自动驾驶仿真 (三)—— 基于PreScan与Simulink的AEB系统仿真

自动驾驶仿真三—— 基于PreScan&Simulink的AEB系统仿真1. AEB自动紧急制动系统1. 1 TTC碰撞时间模型1. 2 C-NCAP法规部分术语与定义1. 3 主动安全ADAS系统试验项目2. AEB仿真分析建模2.1 搭建场景2.2 传感器建模2.3 添加AEB控制系统3. 典型工况仿真3.1 CCRs仿真测试3.1 CCRm仿真测试4. 参考学习的书目教材 博主前面的博文已经介绍了Prescan&Simulink基本的场景建模及仿真分析流程,《自动驾驶仿真 (二)——

zhudj08的博客 1万+

基于Simulink的四足机器人楼梯攀爬仿真模型

构建一个基于Simulink的四足机器人楼梯攀爬仿真模型,旨在模拟四足机器人在面对楼梯等障碍时的运动控制和稳定性调整。以下是一个详细的步骤指南,帮助你从零开始创建这样一个仿真模型。

xiaoheshang_123的博客 248

基于Spring Boot框架及数据库相关知识的应用实践

通过参与这个电商平台项目的开发,我深刻体会到了Spring Boot等常用框架在实际项目中的巨大优势。Spring Boot简化了项目的开发和部署过程,提高了开发效率;MyBatis提供了灵活的数据库操作方式,方便了数据的持久化。同时,对数据库驱动和连接池机理的深入理解,让我能够在项目中合理配置和优化数据库连接,提升了系统的性能和稳定性。在未来,随着技术的不断发展,Java生态系统也在不断创新和完善。

SAFE20242034的博客 772

nuScenes数据集详细介绍

nuScenes网上介绍资料较多,但是大部分仅仅是对官网的翻译,缺乏各个文件的内在联系介绍。例如,nuScenes激光雷达的数据格式,点云包含哪几种属性。再比如,sample文件夹和sweeps文件夹下的文件关系,以及是如何在相关json文件中体现的。本文将详细介绍nuScenes数据集的各个部分。

叶子的博客 1万+

Spring HikariCP DB连接池

Spring hikari Connection Pool为什么使用连接池?HikariCP简介主要特点常用配置说明输出日志 为什么使用连接池? 数据库连接池的主要作用是预置一定数量的连接, 放到缓冲池中重复使用, 来减轻每次使用数据库时创建连接及销毁连接的性能成本, 由此提升数据库并发能力 HikariCP简介 HikariCP是 BoneCP线程池的优化版本, 号称性能最好的, Spri...

Shawn Jeon`s blog 400

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

spring boot关于数据库

spring boot 一、数据库连接和JDBCTemplate 在pom.xml中引入jar包 <!-- web--> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId>

clsld的博客 161

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

spring boot初学习的数据库依赖

代码: <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> </dependency> <dependency> ...

HWP 853

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

了解数据库连接池

数据库连接池是管理数据库连接的缓冲池,用于解决频繁创建/关闭连接的性能问题。MyBatis作为SQL映射工具,依赖连接池获取数据库连接,两者分工明确但紧密协作。在Spring Boot项目中,通过自动配置功能,仅需在application.yml中配置数据库信息和连接池参数(如Druid),MyBatis即可直接使用连接池,无需手动编写配置文件。这种设计避免了重复配置,简化了开发流程,提升了整体性能。

A2715045459的博客 834

Springboot连接两个数据库(以Mysql和H2数据库为例)

简单方法实现Springboot双数据库的连接

weixin_56213139的博客 1818
上一篇: GET正常,POST获取不到数据
下一篇: @Mapper报红
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值