普通CRUD后台管理项目的核心包装升级

使用baomidou的DynamicDataSource实现多数据源

官网地址:dynamic-datasource · 看云

1.引入jar包

复制代码
 <dependency>
     <groupId>com.baomidou</groupId>
     <artifactId>dynamic-datasource-spring-boot-starter</artifactId>
     <version>3.5.0</version>
 </dependency>

2.核心配置文件application.yml中进行数据源的配置:

bash 复制代码
spring:
  datasource:
    dynamic:
      #设置默认的数据源或者数据源组,默认值即为master
      primary: master
      #严格匹配数据源,默认false. true未匹配到指定数据源时抛异常,false使用默认数据源
      strict: false
      datasource:
        master:
          url: jdbc:mysql://127.0.0.1:3306/datasource1?serverTimezone=UTC&useUnicode=true&characterEncoding=UTF8&useSSL=false
          username: root
          password: root
          initial-size: 1
          min-idle: 1
          max-active: 20
          test-on-borrow: true
          driver-class-name: com.mysql.cj.jdbc.Driver
        slave_1:
          url: jdbc:mysql://127.0.0.1:3306/datasource2?serverTimezone=UTC&useUnicode=true&characterEncoding=UTF8&useSSL=false
          username: root
          password: root
          initial-size: 1
          min-idle: 1
          max-active: 20
          test-on-borrow: true
          driver-class-name: com.mysql.cj.jdbc.Driver

3.使用

@DS可以修饰方法或者类

java 复制代码
package com.tuling.dynamic.datasource.service.impl;

import com.baomidou.dynamic.datasource.annotation.DS;
import com.baomidou.dynamic.datasource.annotation.DSTransactional;
import com.tuling.dynamic.datasource.mapper.FriendMapper;
import com.tuling.dynamic.datasource.entity.Friend;
import com.tuling.dynamic.datasource.service.FriendService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import java.util.List;

@Service
public class FriendImplService implements FriendService {

    @Autowired
    FriendMapper friendMapper;


    @Override
    @DS("slave_1")  // 从库, 如果按照下划线命名方式配置多个  , 可以指定前缀即可(组名)
    public List<Friend> list() {
        return friendMapper.list();
    }

    @Override
    @DS("master")
    public void save(Friend friend) {
        friendMapper.save(friend);
    }


//    @DS("master")
//    @DSTransactional
//    public void saveAll(){
//        // 执行多数据源的操作
//    }

}
相关推荐
是乐谷5 分钟前
阿里云杭州 AI 产品法务岗位信息分享(2025 年 8 月)
java·人工智能·阿里云·面试·职场和发展·机器人·云计算
Java水解23 分钟前
Java中的四种引用类型详解:强引用、软引用、弱引用和虚引用
java·后端
lifallen31 分钟前
JCTools 无锁并发队列基础:ConcurrentCircularArrayQueue
java·开发语言·数据结构·算法
一叶飘零_sweeeet39 分钟前
IDEA 插件 Trae AI 全攻略
java·人工智能·intellij-idea
欧哈东哥1 小时前
【C++】标准库中用于组合多个值的数据结构pair、tuple、array...
java·数据结构·c++
python_1361 小时前
web请求和响应
java·spring·github
ciku3 小时前
Spring AI Starter和文档解读
java·人工智能·spring
程序猿阿越3 小时前
Kafka源码(三)发送消息-客户端
java·后端·源码阅读