java Servlet操作多個mysql數據庫

原先使用的時候是在單獨的一個mysql上面開發,隨着需求的變化,需要在兩個個或者多個mysql中操作數據,原來確實沒有發現這個問題,但是這個問題的解決也很簡單,那就是創將不同的mysql連接實例對象就可以解決了

1、配置文件中配置你的多個數據庫的配置數據

	public static final String DBURL_A                = "jdbc:mysql://地址一:3306/數據庫";
	public static final String DBUSER_A               = "用戶名";
	public static final String DBPASSWORLD_A          = "密碼";
	
	public static final String DBURL_B                = "jdbc:mysql://地址二:3306/數據庫";
	public static final String DBUSER_B               = "用戶名";
	public static final String DBPASSWORLD_B          = "密碼";


2.在DAO層的操作前的的構造不同的Connection

public class DbConnect {
	
	private Connection conn=null;
	/**
	 * 構造函數完成數據庫的連接和連接對象的生成
	 */
	public DbConnect(String db) {
		if(db.equals("A")){		
			try{				
				Class.forName(Config.DBDRIVER);//加載數據庫驅動程序
				this.conn=DriverManager.getConnection(Config.DBURL_A,Config.DBUSER_A,Config.DBPASSWORLD_A);//取得數據庫連接				
			}catch(Exception e){				
				e.printStackTrace();				
			}		
		}else if(db.equals("B")){		
			try{			
				Class.forName(Config.DBDRIVER);//加載數據庫驅動程序
				this.conn=DriverManager.getConnection(Config.DBURL_B,Config.DBUSER_B,Config.DBPASSWORLD_B);//取得數據庫連接				
			}catch(Exception e){				
				e.printStackTrace();				
			}
		}else{
			throw new Exception("無相應數據庫配置");
		}
	}
	/**
	 * 取得已經構造生成的數據庫連接
	 * @return 返回數據庫連接對象
	 */
	public Connection getConnect(){		
		return this.conn;		
	}
	/**
	 * 關閉當前構造生成的數據庫連接
	 */
	public void closeConnect(){		
		if(this.conn!=null){//存在數據庫連接的時候關閉			
			try {				
				this.conn.close();				
			} catch (SQLException e) {
				e.printStackTrace();				
			}			
		}
	}
}


3、在使用的時候傳入相應的字符來取得相應的數據庫連接

Connection cona=new DbConnect("A").getConnect();//取得數據庫鏈接
Connection conb=new DbConnect("B").getConnect();//取得數據庫鏈接


發佈了35 篇原創文章 · 獲贊 44 · 訪問量 21萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章