当前位置: 首页 > news >正文

springboot双数据源配置及进行数据库操作

  • application.yaml配置文件
spring:datasource:druid:stat-view-servlet:enabled: trueloginUsername: adminloginPassword: 123456dynamic:druid:initial-size: 5min-idle: 5maxActive: 20maxWait: 60000timeBetweenEvictionRunsMillis: 60000minEvictableIdleTimeMillis: 300000validationQuery: SELECT 1 FROM DUALtestWhileIdle: truetestOnBorrow: falsetestOnReturn: falsepoolPreparedStatements: truemaxPoolPreparedStatementPerConnectionSize: 20filters: stat,slf4jconnectionProperties: druid.stat.mergeSql\=true;druid.stat.slowSqlMillis\=5000# 设置默认的数据源或者数据源组,默认值即为masterprimary: master# 严格匹配数据源,默认false.true未匹配到指定数据源时抛异常,false使用默认数据源strict: falsedatasource:#人大金仓数据库1master: driver-class-name: com.kingbase8.Driverurl: jdbc:kingbase8://ip:port/test1username: test1password: testpwd#人大金仓数据库2dataCenterDb:driver-class-name: com.kingbase8.Driverurl: jdbc:kingbase8://ip:port/test2?currentSchema=anon1username: test2password: test2pwd
  • 处理不同数据库业务

    • 处理数据库1
    @Service
    public class LocalDbServiceImpl implements ILocalDbService {@Resourceprivate DataCenterDbMapper dataCenterDbMapper;//@DS("master")//配置文件已设置默认数据库(primary: master),所以这里不配置不影响,默认就是master。在这里面不要调用数据库2的service,不然也会默认是数据库1的操作@Overridepublic void select(){return dataCenterDbMapper.select();}
    }
    
    • 处理数据库2
    @Slf4j
    @Service
    public class DataCenterDbServiceImpl implements IDataCenterDbService {@Override@DS("dataCenterDb") //加上该注解,该方法所有涉及到数据库的操作均为dataCenterDb数据库。在这里面不要调用数据库1的service,不然也会默认是数据库2的操作public void insert(){log.info("*** 当前数据库:{}",  DynamicDataSourceContextHolder.peek());//处理业务}
    }
    
    • 处理两个数据库
    @Slf4j
    @Component
    public class Test {@ResourceILocalDbService localDbService;@ResourceIDataCenterDbService dataCenterDbService;//处理两个不同数据库业务public void test(){localDbService.select();dataCenterDbService.insert();}
    }
    

http://www.mrgr.cn/news/80836.html

相关文章:

  • 【嵌入式软件】跑开发板的前置服务配置
  • ELK部署
  • 【Token】校验、会话技术、登录请求、拦截器【期末实训】实战项目学生和班级管理系统\Day15-后端Web实战(登录认证)\讲义
  • 使用Chat-LangChain模块创建一个与用户交流的机器人
  • 在 Unity 6 中使用APV为您的世界创建全局照明的新方法(一)
  • 短视频矩阵贴牌:打造品牌新势力的策略与实践
  • Swin transformer 论文阅读记录 代码分析
  • 【Rust自学】4.2. 所有权规则、内存与分配
  • 将HTML转换为PDF:使用Spire.Doc的详细指南(一) 试用版
  • java开发入门学习五-流程控制
  • MySQL高可用
  • 【5】C#期末复习第5套
  • Android 10 Launcher3 删除谷歌搜索
  • 【软件设计_设计模式】设计模式代码笔记
  • 关于在浏览器里面获取手机方向的事件
  • Java收发邮件 Jakarta mail
  • 每日十题八股-2024年12月19日
  • el-table 多表头+跨行跨列案例
  • 使用Gradio编写大模型ollama客户端 -界面版
  • Kaggler日志--Day9
  • Docker:Dockerfile(补充四)
  • 【Rust自学】4.1. 所有权:栈内存 vs. 堆内存
  • 【Linux】NET9运行时移植到低版本GLIBC的Linux纯内核板卡上
  • 初学stm32 ——— 串口通信
  • Qt Quick:CheckBox 复选框
  • Spring Boot 配置Kafka