飙血推荐
  • HTML教程
  • MySQL教程
  • JavaScript基础教程
  • php入门教程
  • JavaScript正则表达式运用
  • Excel函数教程
  • UEditor使用文档
  • AngularJS教程
  • ThinkPHP5.0教程

java切换数据源测试(思路)

时间:2021-12-14  作者:匿名  

java数据源切换。

今天碰到了。

先说下原理。。

首先 ,必要的条件

数据库里面的表结构是一样的。。

只是数据库名字不一样,

而且这名字也是有规律(无规律也行)的。。

因为数据库多

所以读取的时候需要用到数据源切换。。

举个例子:

就说下

例如我经常玩的dnf游戏。。

dnf游戏 不是有很多区吗,

有福建一区,福建二区,福建三区

他们的表结构都是一样的。。

不一样的话,

游戏就同步了。。

切换数据源相当于换服

具体做法

可以根据查询 含某个方法时进行切换

用这个类  ComboPooledDataSource  进行数据切换

这里只截取一段。。

String tUrl = "jdbc:mysql://"+动态参数+"/"+动态参数+"?useUnicode=true&characterEncoding=utf-8";
        域名riverClass("域名.Driver");
        域名dbcUrl(tUrl);
        域名ser(用户名字);
        域名assword(密码);

// service方法执行之前被调用

重要的是 利用aop 判断 参数进行转换。。

public void before(Method method, Object[] args, Object target) throws Throwable {  
        String sourceName="master";
    
        if(域名ame().toLowerCase().indexOf("yq1012")>=0){
              
           if(域名th>1){
               Object obj =  args[域名th-1];
               if (obj instanceof String && 域名ring().toLowerCase().startsWith("数据库名字_标识")) {
                   sourceName=域名ring().toLowerCase();
               }   
            }
        }
    
        if(sourceName!=null){
           域名ataSource(sourceName); 
         }else{
           域名aster();
         }
   }

先判断执行的方法有没有包含yq1012

如果有的话,再根据参数去判断是不是需要切换数据源

湘ICP备14001474号-3  投诉建议:234161800@qq.com   部分内容来源于网络,如有侵权,请联系删除。