当前位置:操作系统 > Unix/Linux >>

连接多台服务器数据库,如遇超时或网络不通自动跳过连接下一台

public class Controller{ 
     List dbiList = new LinkedList();//这是那200多个DBInfo对象的链表.自己想办法添进去.初始化的时候添一次就可以了. 
     //原来的doProccess方法 
      public void doProcess(final Object args){ 
          Proccessor p = new Processor({ 
               public void proccess(Connection con)throws SQLException{ 
                    //在这里面添加你要对数据库操作的内容.注意,这里最好是要封装成一个事务进行提交. 
                    //如果不想使用匿名内部类,可以自己编写一个有名称的实现类. 
               } 
          }); 
          doDBProccess(p); 
     } 
     private void doDBProccess(Proccessor p){ 
          for(Iterator itr = dbiList.iterator();itr.hasNext();){ 
               DBInfo info = (DBInfo)itr.next(); 
               Connection conn = getDBConnection(info); 
               try{ 
                    p.proccess(conn); 
                    return; 
               }catch(SQLException e){ 
                    continue; 
               } 
          } 
            noDBCanDO(p); 
     } 
     private void noDBCanDO(Proccessor p){ 
     //所有DB的连接都无法完成时,代码添这里就可以了. 
     } 
     private Connection getDBConnection(DBInfo info){ 
     //通过DBInfo对象的内容,创建一个数据库的连接.代码添这里就可以. 
     } 
}   

作者 疯狂程序员
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,