Mybatis连接多个数据库配置方法

注意:本文配置不涉及Spring,仅限于Mybatis内。

思路:

1、configuration.xml配置文件中environments内参数写成动态传参;

2、DBUtil类中构建SQLSessionFactory时读取传入的数据库连接配置信息动态生成。

案例如下:

1)configuration.xml配置信息:


	
		
		
			
			
			
			
		
	

2)DBUtil类:

import java.io.IOException;
import java.io.InputStream;
import java.util.Properties;

import org.apache.ibatis.io.Resources;
import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.ibatis.session.SqlSessionFactoryBuilder;

import com.sz.properties.MG01;

public class DBUtil {
	public SqlSession getSqlSession(Properties properties) throws IOException {
		// 通过配置文件获取数据库连接信息
		InputStream stream = Resources.getResourceAsStream("Configuration.xml");
		/*
		System.out.println(properties.getProperty("jdbc.driver"));
		System.out.println(properties.getProperty("jdbc.url"));
		System.out.println(properties.getProperty("jdbc.user"));
		System.out.println(properties.getProperty("jdbc.password"));
		*/
		// 通过配置信息构建一个SQLSessionFactory
		SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(stream,properties);
		// 通过sqlSessionFactory打开一个数据库会话
		SqlSession sqlSession = sqlSessionFactory.openSession();
		return sqlSession;
	}
	
	// 测试主方法
	public static void main(String[] args) {
		SqlSession sqlSession = null;
		try {
			sqlSession = new DBUtil().getSqlSession(DBProperties.CS15);
			System.out.println(sqlSession);
		} catch (IOException e) {
			e.printStackTrace();
		} finally {
			if(session != null){
			        session.close();
			}
		}
	}
}

3)DBProperties工具类:

import java.util.Properties;

public class DBProperties {

	public static final Properties MG01;
	public static final Properties CS15;
	
	static{
		
		MG01 = new Properties();
		MG01.setProperty("jdbc.driver", "oracle.jdbc.driver.OracleDriver");
		MG01.setProperty("jdbc.url", "jdbc:oracle:thin:@192.168.0.0:1521/mg01");
		MG01.setProperty("jdbc.user", "xxx");
		MG01.setProperty("jdbc.password", "xxx");
		
		CS15 = new Properties();
		CS15.setProperty("jdbc.driver", "oracle.jdbc.driver.OracleDriver");
		CS15.setProperty("jdbc.url", "jdbc:oracle:thin:@192.168.0.0:1521/mg15");
		CS15.setProperty("jdbc.user", "xxx");
		CS15.setProperty("jdbc.password", "xxx");
	}
	
}

4)javabean:User类

/**
 * 账号密码实体类
 */
public class User {

	private String uer;
	private String pwd;
	
	public String getUer() {
		return uer;
	}
	public void setUer(String uer) {
		this.uer = uer;
	}
	public String getPwd() {
		return pwd;
	}
	public void setPwd(String pwd) {
		this.pwd = pwd;
	}
	
}

5)IUser接口

import java.util.Map;

import com.sz.bean.User;

public interface IUser {

	User login(Map parameterMap);
}

6)User.xml配置





  
    
    
  

  

7)UserAction类

import java.io.IOException;
import java.util.HashMap;
import java.util.Map;

import org.apache.ibatis.session.SqlSession;

import com.opensymphony.xwork2.ActionSupport;
import com.sz.bean.User;
import com.sz.dao.IUser;
import com.sz.db.DBUtil;
import com.sz.properties.DBProperties;

@SuppressWarnings("serial")
public class UserAction extends ActionSupport {

	private String uer = "";// 账号
	private String pwd = "";// 密码

	public String login(){
		if(uer != null && pwd != null){
			Map parameterMap = new HashMap();
			DBUtil util = new DBUtil();
			SqlSession session = null;
			User user = null;
			parameterMap.put("uer", uer);
			parameterMap.put("pwd", pwd);
			try {
				session = util.getSqlSession(DBProperties.DMS);
				IUser iuser = session.getMapper(IUser.class);
				user = iuser.login(parameterMap);
			} catch (IOException e) {
				e.printStackTrace();
			} finally {
				if(session != null){
					session.close();
				}
			}
			if(uer.equals(user.getUer())){
				return "main";
			}
			return "error";
		}
		return "error";
	}

	/*
	 * 测试参数传输
	 */
	public String test(){
		System.out.println(getUer());
		System.out.println(getPwd());
		return "error";
	}
	
	public String getUer() {
		return uer;
	}
	public void setUer(String uer) {
		this.uer = uer;
	}
	public String getPwd() {
		return pwd;
	}
	public void setPwd(String pwd) {
		this.pwd = pwd;
	}
	
}

8)struts2.xml配置





	

	
	
	   
		  main.jsp
		  login.jsp
		
		
	

9)页面表单请求



|
|

这样案例就可以跑起来了!(本案例配合struts2网页调用

你可能感兴趣的:(Java,JavaSE,Java,Mybatis)