日期:2014-05-16 浏览次数:20432 次
?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