打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
SpringBoot整合多数据源(全网最简单)

SpringBoot整合多数据源(全网最简单)


最简单快捷的 springboot 实现多数据源的方法。
导入苞米豆的依赖,人家已经给你全部写好了,配置一下,直接用就可以了。:
<!-- https://mvnrepository.com/artifact/com.baomidou/dynamic-datasource-spring-boot-starter --><dependency>    <groupId>com.baomidou</groupId>    <artifactId>dynamic-datasource-spring-boot-starter</artifactId>    <version>3.0.0</version></dependency>

全局配置文件,配置三个数据源,分别起名为master,slave_1,slave_2:

spring:  datasource:    dynamic:      primary: master #设置默认的数据源或者数据源组,默认值即为master      datasource:        master:          username: root          password: 123456          driver-class-name: com.mysql.jdbc.Driver          url: jdbc:mysql://localhost:3306/springboot?serverTimezone=Asia/Shanghai        slave_1:          username: root          password: 123456          driver-class-name: com.mysql.jdbc.Driver          url: jdbc:mysql://localhost:3306/springboot2?serverTimezone=Asia/Shanghai        slave_2:          username: root          password: 123456          driver-class-name: com.mysql.jdbc.Driver          url: jdbc:mysql://localhost:3306/springboot3?serverTimezone=Asia/Shanghai

还要新建三个数据库,为了简单就随便意思一下吧,分别起名为springboot,springboot2,springboot3。然后在每个数据库里面都新建上一张名为person的表,并存入不同的数据。测试的时候就来查这些个person的列表。


写即可接口试一下,在方法或者上用@DS注解标注并在其value属性中写出要连接的数据源名称。为了方便起见我就直接用JdbcTemplate 来查数据了。

package com.ge.controller;import com.baomidou.dynamic.datasource.annotation.DS;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.jdbc.core.JdbcTemplate;import org.springframework.stereotype.Controller;import org.springframework.web.bind.annotation.GetMapping;import org.springframework.web.bind.annotation.ResponseBody;import java.util.List;import java.util.Map;@Controllerpublic class MyController {    @Autowired    JdbcTemplate jdbcTemplate;    @GetMapping("find")    @ResponseBody    public List<Map<String, Object>> find(){        List<Map<String, Object>> list = jdbcTemplate.queryForList("select * from person");        return  list;    }    @DS(value = "slave_1")    @GetMapping("find1")    @ResponseBody    public List<Map<String, Object>> find1(){        List<Map<String, Object>> list = jdbcTemplate.queryForList("select * from person");        return  list;    }    @DS(value = "slave_2")    @GetMapping("find2")    @ResponseBody    public List<Map<String, Object>> find2(){        List<Map<String, Object>> list = jdbcTemplate.queryForList("select * from person");        return  list;    }}

运行项目,分别请求不同数据源所对应的接口,下面看请求结果:
请求接口http://localhost:8080/find:


请求接口http://localhost:8080/find1:

请求接口http://localhost:8080/find2:

结果正确,这样springboot多数据源的整合就完成了,是不是很简便?

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
springboot+dynamic多数据源配置
SpringBootJDBC访问数据库
使用spring的动态路由实现数据库读写分离【数据库读写分离(二) 】
springboot快速入门
分库分表方案之Shark
亿级流量网站架构核心技术之“数据库分库分表策略”
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服