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();//取得数据库链接


你可能感兴趣的:(java,mysql)