iis服务器助手广告广告
返回顶部
首页 > 资讯 > 后端开发 > Python >如何在Java SpringBoot项目中配置动态数据源你知道吗
  • 557
分享到

如何在Java SpringBoot项目中配置动态数据源你知道吗

2024-04-02 19:04:59 557人浏览 独家记忆

Python 官方文档:入门教程 => 点击学习

摘要

目录首先需要引入第三方依赖只需要在配置文件中按照如下配置创建如下两个数据库entitymapper.xmlmapper层Service层下面是两个测试方法下面可以来看一下测试结果:在

在我们工作中涉及到一些场景需要我们配置多数据源的操作,之前来说我们配置数据源需要写繁琐的配置类来配置我们的数据源,哪个是默认数据源等等,而现在我们可以使用“苞米豆”为我们提供的提供的第三方工具,只需要简单配置就可以实现多数据源之间的灵活切换了!

首先需要引入第三方依赖


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

只需要在配置文件中按照如下配置


spring:
  datasource:
    dynamic:
      primary: master #设置默认的数据源或者数据源组,默认值即为master
      strict: false #严格匹配数据源,默认false. true未匹配到指定数据源时抛异常,false使用默认数据源
      datasource:
        master: # 名称可以自己定义
          url: jdbc:Mysql://localhost:3306/students?useUnicode=true&characterEncoding=utf8&useSSL=false&serverTimezone=GMT%2B8
          username: root
          passWord: root
          driver-class-name: com.mysql.cj.jdbc.Driver
        slave: # 名称可以自己定义
          url: jdbc:mysql://localhost:3306/teachers?useUnicode=true&characterEncoding=utf8&useSSL=false&serverTimezone=GMT%2B8
          username: root
          password: root
          driver-class-name: com.mysql.cj.jdbc.Driver

创建如下两个数据库

entity


@Data
public class Student implements Serializable {
    
    private Integer id;
    
    private String name;
    
    private Integer age;
    
    private String sex;
    private static final long serialVersionUID = 1L;
}

@Data
public class Teacher implements Serializable {
    
    private Integer id;
    
    private String name;
    
    private Integer age;
    
    private String subject;
    private static final long serialVersionUID = 1L;
}

mapper.xml


<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "Http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.example.demo.mysql.mapper.StudentDao">
    <select id="findAllStudent" resultType="com.example.demo.entity.Student">
        select *
        from student;
    </select>
</mapper>

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.example.demo.mysql.mapper.TeacherDao">
    <select id="findAllTeacher" resultType="com.example.demo.entity.Teacher">
        select *
        from teacher;
    </select>
</mapper>

mapper层


@Mapper
public interface StudentDao {
    List<Student> findAllStudent();
}

@Mapper
public interface TeacherDao {
    List<Teacher> findAllTeacher();
}

Service层


@Service
public class StudentServiceImpl implements StudentService {
    @Autowired
    private StudentDao studentDao;
    @Override
    public List<Student> findAllStudent() {
        return studentDao.findAllStudent();
    }

@Service
@DS("slave")
public class TeacherServiceImpl implements TeacherService {
    @Autowired
    private TeacherDao teacherDao;
    @Override
    public List<Teacher> findAllTeacher() {
        return teacherDao.findAllTeacher();
    }
}

下面是两个测试方法


@RestController
public class TestController {
    @Autowired
    private StudentService studentService;
    @Autowired
    private TeacherService teacherService;
    
    @GetMapping("/test/1")
    public List<Student> findAllStudent() {
        return studentService.findAllStudent();
    }
    
    @GetMapping("/test/2")
    public List<Teacher> findAllTeacher() {
        return teacherService.findAllTeacher();
    }
}

需要注意的一点是mapper和mapper.xml路径需一致否自会导致编译后找不到xml文件

下面可以来看一下测试结果:

查询学生:

查询老师:

此时不管是学生还是老师的信息是都可以查询出来的,这就全靠TeacherServiceImpl中使用的DS(“slave”)指定了数据源,假如说我们把注解去掉再来一次试试,可以看到请求报错提示students库中没有teacher这个表,所以说在我们没有指定数据源的时候,它是会自动去匹配默认的数据源来查询!

--结束END--

本文标题: 如何在Java SpringBoot项目中配置动态数据源你知道吗

本文链接: https://www.lsjlt.com/news/134739.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • 如何在Java SpringBoot项目中配置动态数据源你知道吗
    目录首先需要引入第三方依赖只需要在配置文件中按照如下配置创建如下两个数据库entitymapper.xmlmapper层Service层下面是两个测试方法下面可以来看一下测试结果:在...
    99+
    2024-04-02
  • SpringBoot是如何实现自动配置的你知道吗
    目录SpringBoot启动类:步骤如下: 总结SpringBoot启动类: @SpringBootApplication public class CommunityAppli...
    99+
    2024-04-02
  • 你知道如何将NumPy集成到Java项目中吗?
    当涉及到Java项目中使用科学计算库时,NumPy是一个非常流行的选择。NumPy是Python中最常用的科学计算库之一,它提供了一些强大的数据结构和函数,用于快速处理大型数据集和矩阵运算。在本文中,我们将探讨如何将NumPy集成到Java...
    99+
    2023-10-18
    path ide numy
  • 你知道如何在Linux上安装和配置Java吗?
    当今,Java已经成为了许多企业的首选编程语言,而Linux作为一种常见的服务器操作系统,则经常用于运行Java应用程序。因此,在Linux上安装和配置Java是每个Java开发者必须掌握的技能之一。本文将为您详细介绍如何在Linux上安装...
    99+
    2023-07-29
    linux leetcode windows
  • vue项目中如何使用mock你知道吗
    目录第一步:第二步,在request.js中进行相关配置,request.js代码如下:第三步,在mock.js中进行相关配置,mock.js代码如下:第四步,在main.js中需引...
    99+
    2024-04-02
  • springboot中如何利用mybatis+druid配置动态数据源
    这篇“springboot中如何利用mybatis+druid配置动态数据源”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“s...
    99+
    2023-06-08
  • 你知道如何在NPM中打包Java数据类型吗?
    在实际的项目中,我们经常需要在Java和JavaScript之间传递数据。为了实现这一目的,我们需要将Java数据类型打包为JavaScript可识别的格式。这篇文章将介绍如何在NPM中打包Java数据类型。 在开始之前,我们需要先了解一...
    99+
    2023-06-03
    数据类型 npm 打包
  • 你知道Java数组在Django中如何处理吗?
    Java数组在Django中的处理方式 Java和Django都是非常流行的编程语言和框架,它们都有着广泛的应用和强大的功能。但是,在Java中使用数组和在Django中使用数组是不同的,因为它们在处理方式上有所差异。在本文中,我们将深入探...
    99+
    2023-10-03
    数组 linux django
  • Jasper如何配置动态数据源
    Jasper如何配置动态数据源,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。Jasper 本身是不支持动态数据源的,能用的解决方式是通过 api 自定义数据源,...
    99+
    2023-06-03
  • 如何解决springboot项目不配置数据源启动报错问题
    这篇文章给大家分享的是有关如何解决springboot项目不配置数据源启动报错问题的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。springboot项目不配置数据源启动报错spring boot默认会加载org....
    99+
    2023-06-22
  • 你知道如何在Java中使用不同类型的数据吗?
    当我们编写Java程序时,我们经常需要处理不同类型的数据。在本文中,我们将介绍Java中不同类型的数据以及如何使用它们。 Java中的数据类型可以分为两类:基本数据类型和引用数据类型。基本数据类型是Java语言内置的数据类型,包括整型、浮点...
    99+
    2023-06-03
    数据类型 npm 打包
  • 你知道怎样在Java项目中使用二维码吗?Apache IDE教你如何实现!
    Java项目是目前非常流行的开发方式,而二维码是一种非常实用的技术,可以在很多场合下使用。本文将会介绍如何在Java项目中使用二维码,同时提供Apache IDE的实现方法。 一、二维码的基本原理 二维码是一种矩阵条码,它是由黑白色块组成的...
    99+
    2023-10-08
    二维码 apache ide
  • 你知道如何在Java IDE中设置NumPy的路径吗?
    在Java IDE中设置NumPy的路径可能是一个让人感到困惑的任务,尤其是对于那些还不太熟悉Java和NumPy的开发者来说。然而,这个过程并不是那么难,只需要遵循一些简单的步骤,就能够轻松地完成这个任务。 在本文中,我们将为你介绍如何在...
    99+
    2023-10-23
    ide path numy
  • 你知道如何在Java IDE中设置异步编程吗?
    Java是一种面向对象的编程语言,广泛应用于各种应用程序的开发。在Java编程中,异步编程是非常常见的技术,它可以提高程序的性能和响应速度。在本文中,我们将讨论如何在Java IDE中设置异步编程。 Java IDE是一种集成开发环境,可以...
    99+
    2023-07-22
    ide windows 异步编程
  • 你知道如何在Go中设置路径吗?
    当我们在使用Go语言进行编程时,经常需要设置路径来引用其他的包或文件。但是,如果不了解如何设置路径,就会出现无法找到文件或包的情况。本文将介绍如何在Go中设置路径,以便更有效地进行编程。 在Go中设置路径的方法有很多种,下面我们将逐一介绍。...
    99+
    2023-06-19
    path 对象 编程算法
  • 你知道如何在Java IDE中使用Bash吗?
    在现代软件开发中,Java是一种极其流行的编程语言。Java开发人员经常使用Java集成开发环境(IDE)来编写、调试和测试Java代码。同时,Bash是一种流行的Unix shell,它提供了强大的命令行工具和脚本语言。虽然Java开发...
    99+
    2023-06-17
    ide bash javascript
  • 解决springboot项目不配置数据源启动报错问题
    目录springboot项目不配置数据源启动报错springboot配置双数据源报错springboot项目不配置数据源启动报错 spring boot默认会加载 org.spr...
    99+
    2024-04-02
  • 你是否知道如何在Django项目中集成Git?
    Django是一个高效的Python Web框架,它可以帮助我们快速地开发出高质量的Web应用程序。如果你正在使用Django,那么你可能会需要将你的代码存储在Git中,这样可以方便地管理你的代码和版本控制。在本文中,我们将探讨如何在Dja...
    99+
    2023-10-12
    linux git django
  • 你知道如何在Spring框架中使用Java函数吗?
    Spring框架是目前应用较广泛的Java开发框架之一。它提供了许多方便的功能和工具,使得Java开发变得更加高效和便捷。在Spring框架中,我们可以使用Java函数来实现一些常见的操作,如数据处理、业务逻辑处理等。本文将介绍如何在Spr...
    99+
    2023-09-16
    函数 spring 框架
  • springboot中如何配置多数据源
    这期内容当中小编将会给大家带来有关springboot中如何配置多数据源,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。一、建库建表1.1 创建数据库db1和数据库db21.2 在数据库db1中创建表db1...
    99+
    2023-06-15
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作