当前位置:   article > 正文

springboot中mybatis夸库查询可配置

springboot中mybatis夸库查询可配置

项目需求mybatis中有的sql是跨库去查询的,

假如现有 测试数据库A_test 表user 那么查询的sql为:

select * from A_test.user 
  • 1

如果 切换到生产数据库 A_prod 表user 那么查询的sql为:

select * from A_prod.user 
  • 1

在只写一套sql的前提下,保证业务的独立,复用性,一般做法:
1.如果使用了框架mybatis
可以在配置文件里面加入

mybatis.configuration.variables.databaseName=A_test

YAML格式:
在这里插入图片描述

select * from ${databaseName}.user
  • 1

2.如果不使用mybatis,我们可以定义一个常量,实现动态切换。

package com.easyu.security.service;

import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Component;

@Component
public class MybatisConstant {
    public static String db1 = "`A_test`";

    public static String getDb1() {
        return db1;
    }

    @Value("${my.project.databaseName:A_test}")
    public static void setDb1(String db1) {
        MybatisConstant.db1 = db1;
    }
}


  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20

在这里插入图片描述
定义好了之后,mybatis写法为:

selcet * from #{@com.easyu.security.service.MybatisConstant@db1}.user
  • 1

可以根据配置文件的去实现sql的动态切换库名,成功解决了test/prod的切换问题,测试生产一套sql。完美解决

转载请标明出处!

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/2023面试高手/article/detail/575494
推荐阅读
相关标签
  

闽ICP备14008679号