日期:2014-05-16 浏览次数:20523 次
?1.使用JDBC来完成同类多数据的连接,或不同类数据库之间的连接,通用XML文件配置来完成。

?? 1.1? datebase_cfg.xml [数据库连接配置]
<?xml version="1.0" encoding="UTF-8"?>
<database>
<sqlserver>
<driver>com.microsoft.sqlserver.jdbc.SQLServerDriver</driver><!-- 数据库驱动 -->
<userName>sa</userName> <!-- 用户名 -->
<userPass>123</userPass> <!-- 密码 -->
<state>1</state> <!-- 开启1,关闭0 --><!-- 状态,是否开启 -->
<dataBaseName>framemanager</dataBaseName> <!-- 默认数据库名 -->
<baseURL>localhost</baseURL> <!-- 服务器地址 -->
</sqlserver>
<mysql>
<driver>com.mysql.jdbc.Driver</driver>
<userName>root</userName>
<userPass>111111</userPass>
<state>0</state> <!-- 开启2,关闭0 -->
<dataBaseName>bsdev</dataBaseName>
<baseURL>localhost</baseURL>
</mysql>
<oracle>
<driver>oracle.jdbc.driver.OracleDriver</driver>
<userName>root</userName>
<userPass>root</userPass>
<state>0</state> <!-- 开启3,关闭0 -->
<dataBaseName>test</dataBaseName>
<baseURL>localhost</baseURL>
</oracle>
</database>
?
1.2? GetConfig.java [数据库连接]
package com.smartcom.ma.util.DbUtils;
import java.net.URL;
import java.sql.CallableStatement;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import org.dom4j.Document;
import org.dom4j.Element;
import org.dom4j.io.SAXReader;
/*************************************************
* 采用单例模式读取xml配置文件sys-config.xml
* @author Liyongbin
*
*************************************************/
public class GetConfig {
//静态的私有成员变量
private static GetConfig instance = new GetConfig();
private String DRIVER; //数据库驱动
private String URL; //连接字符串
private String USERNAME; //用户名
private String PASSWORD ; //用户密码
private String STATUS; //状态
private String DatabaseName=""; //数据库名
public enum DBname{ //定义枚举类型
DOCMANAGER,FRAMEMANAGER,WWWMANAGER ; ////定义多个SqlServer数据库名字枚举
}
private Connection conn = null;
private PreparedStatement pst = null;
private CallableStatement cs= null;
private ResultSet res = null;
private Statement st = null;
private Document doc;
//公共的静态入口方法
public static GetConfig getInstance() {
return instance;
}
/**********************************************
* 私有的构造方法[读取配置文件]
* @author Liyongbin [Apr 28, 2012 6:53:24 PM]
* @return
***********************************************/
private GetConfig() {
try {
//获取当前项目在本地的物理路径
// String url = ConfigReader.class.getClass().getResource("/").getPath();
URL url = GetConfig.class.getResource("datebase_cfg.xml");
SAXReader reader = new SAXReader();
doc = reader.read(url.getFile());
// System.out.println(doc.asXML());
Element root = doc.getRootElement();//xml文件的根目录
// Server
STATUS = root.element("sqlserver").element("state").getText();
if(null!=STATUS && "1".equals(STATUS)){
DRIVER = root.element("sqlserver").element("driver").getText();
USERNAME = root.element("sqlserver").element("userName").getText();
PASSWORD = root.element("sqlserver").element("userPass").getText();
//DatabaseName = root.element("sqlserver").element("dataBaseName").getText();//在后面设置
URL = "jdbc:sqlserver://" + root.element("sqlserver").element("baseURL").getText() + ":1433;databasename="
+ Da