用xml配置连接数据库
2016-04-20 16:32
323 查看
实现功能:
1,在XML文件里配置数据库连接(能修改数据库连接相关参数,如用户名等)
2,同时配置两个数据库连接
3,除连接数数据库参数外,其他参数的传送
参考资料:
xml 数据库连接信息 配置与读取(dom4j) - hzh的日志 - 网易博客
http://blog.163.com/woshihezhonghua@126/blog/static/1271436362010510253725/
具体代码:
1,sys-config.xml
需要的jar包:sqljdbc4.jar,ojdbc14.jar
OrclJdbcInfo.java
3,解析XML
ConfigReader.java
需要的jar包:dom4j-1.6.1.jar
DBUtil.java
1,在XML文件里配置数据库连接(能修改数据库连接相关参数,如用户名等)
2,同时配置两个数据库连接
3,除连接数数据库参数外,其他参数的传送
参考资料:
xml 数据库连接信息 配置与读取(dom4j) - hzh的日志 - 网易博客
http://blog.163.com/woshihezhonghua@126/blog/static/1271436362010510253725/
具体代码:
1,sys-config.xml
需要的jar包:sqljdbc4.jar,ojdbc14.jar
<?xml version="1.0" encoding="UTF-8"?> <config> <db-info id="01"> <!—— jdbc链接Oracle数据库 ——> <orcldriver-name>oracle.jdbc.driver.OracleDriver</orcldriver-name> <orclurl>jdbc:oracle:thin:@111.111.1.11:1521/orcl</orclurl> <orclusername>201</orclusername> <orclpassword>300</orclpassword> <orclmandt>006</orclmandt> <orcldays>10</orcldays><!-- 查几天前到现在的数据 --> <orclpasesize>10</orclpasesize><!-- 每页显示数 --> <orclrefreshTime>6</orclrefreshTime><!--翻页间隔 --> <orclpageRefresh>10</orclpageRefresh><!--页面刷新 --> </db-info> <!—— jdbc链接SQL server数据库 ——> <db-info id="00"> <driver-name>com.microsoft.sqlserver.jdbc.SQLServerDriver</driver-name> <url>jdbc:sqlserver://222.222.0.222:1433;DatabaseName=1111</url> <username>b</username> <password>b</password> </db-info> </config>2,将要传递的参数实例化
OrclJdbcInfo.java
package utils; public class OrclJdbcInfo { private String orcldriverName; private String orclurl; private String orclusername; private String orclpassword; private String orcldays; private String orclmandt; private String orclpasesize; private String orclrefreshTime; private String orclpageRefresh; // 注解,能在编译期间发现错误 @Override public String toString() { // TODO Auto-ge dc85 nerated method stub return this.getClass().getName() + "{orcldriverName=" + this.orcldriverName + ",orclurl=" + this.orclurl + ",orclusername=" + this.orclusername + ",orclpassword=" + this.orclpassword + ",orcldays="+this.orcldays +",orclmandt="+this.orclmandt+",orclpagesize="+this.orclpasesize +",orclrefreshtime="+this.orclrefreshTime+",orclpageRefresh="+this.orclpageRefresh+"}"; } public String getOrclrefreshTime() { return orclrefreshTime; } public void setOrclrefreshTime(String orclrefreshTime) { this.orclrefreshTime = orclrefreshTime; } public String getOrclpageRefresh() { return orclpageRefresh; } public void setOrclpageRefresh(String orclpageRefresh) { this.orclpageRefresh = orclpageRefresh; } public String getOrclpasesize() { return orclpasesize; } public void setOrclpasesize(String orclpasesize) { this.orclpasesize = orclpasesize; } public String getOrcldriverName() { return orcldriverName; } public void setOrcldriverName(String orcldriverName) { this.orcldriverName = orcldriverName; } public String getOrclurl() { return orclurl; } public void setOrclurl(String orclurl) { this.orclurl = orclurl; } public String getOrclusername() { return orclusername; } public void setOrclusername(String orclusername) { this.orclusername = orclusername; } public String getOrclpassword() { return orclpassword; } public void setOrclpassword(String orclpassword) { this.orclpassword = orclpassword; } public String getOrcldays() { return orcldays; } public void setOrcldays(String orcldays) { this.orcldays = orcldays; } public String getOrclmandt() { return orclmandt; } public void setOrclmandt(String orclmandt) { this.orclmandt = orclmandt; } }JdbcInfo.java
package utils; public class JdbcInfo { private String driverName; private String url; private String username; private String password; // 注解,能在编译期间发现错误 @Override public String toString() { // TODO Auto-generated method stub return this.getClass().getName() + "{driverName=" + this.driverName + ",url=" + this.url + ",username=" + this.username + ",password=" + this.password + "}"; } public String getDriverName() { return driverName; } public void setDriverName(String driverName) { this.driverName = driverName; } public String getUrl() { return url; } public void setUrl(String url) { this.url = url; } public String getUsername() { return username; } public void setUsername(String username) { this.username = username; } public String getPassword() { return password; } public void setPassword(String password) { this.password = password; } }
3,解析XML
ConfigReader.java
需要的jar包:dom4j-1.6.1.jar
package utils; import org.dom4j.Document; import org.dom4j.DocumentException; import org.dom4j.Element; import org.dom4j.io.SAXReader; /* * 讀取xml配置文件sys-config.xml * 採用單例模式 */ public class ConfigReader { private static ConfigReader instance = new ConfigReader(); private Document doc; private JdbcInfo jdbcInfo; private OrclJdbcInfo orclJdbcInfo; private ConfigReader() { try { doc = new SAXReader().read(Thread.currentThread() .getContextClassLoader().getResourceAsStream("sys-config.xml")); jdbcInfo = new JdbcInfo(); orclJdbcInfo = new OrclJdbcInfo(); Element driverNameElt = (Element)doc.selectObject("/config/db-info/driver-name"); Element urlElt = (Element)doc.selectObject("/config/db-info/url"); Element usernameElt = (Element)doc.selectObject("/config/db-info/username"); Element passwordElt = (Element)doc.selectObject("/config/db-info/password"); jdbcInfo.setDriverName(driverNameElt.getStringValue()); jdbcInfo.setUrl(urlElt.getStringValue()); jdbcInfo.setUsername(usernameElt.getStringValue()); jdbcInfo.setPassword(passwordElt.getStringValue()); Element orcldriverNameElt = (Element)doc.selectObject("/config/db-info/orcldriver-name"); Element orclurlElt = (Element)doc.selectObject("/config/db-info/orclurl"); Element orclusernameElt = (Element)doc.selectObject("/config/db-info/orclusername"); Element orclpasswordElt = (Element)doc.selectObject("/config/db-info/orclpassword"); Element orcldaysElt = (Element)doc.selectObject("/config/db-info/orcldays"); Element orclmandtElt = (Element)doc.selectObject("/config/db-info/orclmandt"); Element orclpasesizeElt = (Element)doc.selectObject("/config/db-info/orclpasesize"); Element orclrefreshTimeElt = (Element)doc.selectObject("/config/db-info/orclrefreshTime"); Element orclpageRefreshElt = (Element)doc.selectObject("/config/db-info/orclpageRefresh"); orclJdbcInfo.setOrcldriverName(orcldriverNameElt.getStringValue()); orclJdbcInfo.setOrclurl(orclurlElt.getStringValue()); orclJdbcInfo.setOrclusername(orclusernameElt.getStringValue()); orclJdbcInfo.setOrclpassword(orclpasswordElt.getStringValue()); orclJdbcInfo.setOrcldays(orcldaysElt.getStringValue()); orclJdbcInfo.setOrclmandt(orclmandtElt.getStringValue()); orclJdbcInfo.setOrclpasesize(orclpasesizeElt.getStringValue()); orclJdbcInfo.setOrclrefreshTime(orclrefreshTimeElt.getStringValue()); orclJdbcInfo.setOrclpageRefresh(orclpageRefreshElt.getStringValue()); } catch (DocumentException e) { // TODO Auto-generated catch block e.printStackTrace(); } } public static ConfigReader getInstance() { return instance; } public JdbcInfo getjdbcInfo(){ return jdbcInfo; } public OrclJdbcInfo getorclJdbcInfo(){ return orclJdbcInfo; } //用於測試是否成功讀取數據 public static void main(String[] args) { System.out.println(ConfigReader.getInstance().getjdbcInfo()); System.out.println(ConfigReader.getInstance().getorclJdbcInfo()); } }4,实现类
DBUtil.java
package utils; import java.sql.Connection; import java.sql.DriverManager; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.SQLException; import java.sql.Statement; import java.util.HashMap; import java.util.List; import java.util.Map; import javax.servlet.http.HttpServlet; import entity.Sap; /** * 数据库工具类 * * @author Administrator * */ public class DBUtil extends HttpServlet{ /** * 取得数据库连接 * * @return */ //map方法封装值 public static Map getConnection() { Map map = new HashMap() ; Connection orclConn = null; Connection conn = null; try { JdbcInfo jdbcInfo = ConfigReader.getInstance().getjdbcInfo(); Class.forName(jdbcInfo.getDriverName()); conn = DriverManager.getConnection(jdbcInfo.getUrl(), jdbcInfo.getUsername(), jdbcInfo.getPassword()); OrclJdbcInfo orclJdbcInfo = ConfigReader.getInstance().getorclJdbcInfo(); Class.forName(orclJdbcInfo.getOrcldriverName()); orclConn = DriverManager.getConnection(orclJdbcInfo.getOrclurl(), orclJdbcInfo.getOrclusername(), orclJdbcInfo.getOrclpassword()); map.put("orcldays",orclJdbcInfo.getOrcldays()); map.put("orclmandt",orclJdbcInfo.getOrclmandt()); map.put("orclpasesize",orclJdbcInfo.getOrclpasesize()); map.put("orclrefreshTime",orclJdbcInfo.getOrclrefreshTime()); map.put("orclpageRefresh",orclJdbcInfo.getOrclpageRefresh()); } catch (ClassNotFoundException e) { e.printStackTrace(); } catch (SQLException e) { e.printStackTrace(); } map.put("orclConn", orclConn); map.put("conn", conn); return map; } public static void close(PreparedStatement pstmt) { if (pstmt != null) { try { pstmt.close(); } catch (SQLException e) { e.printStackTrace(); } } } public static void close(Statement stmt) { if (stmt != null) { try { stmt.close(); } catch (SQLException e) { e.printStackTrace(); } } } public static void close(Connection conn) { if (conn != null) { try { conn.close(); } catch (SQLException e) { e.printStackTrace(); } } } public static void close(ResultSet rs) { if (rs != null) { try { rs.close(); } catch (SQLException e) { e.printStackTrace(); } } } public static void commit(Connection conn) { if (conn != null) { try { conn.commit(); } catch (SQLException e) { e.printStackTrace(); } } } public static void rollback(Connection conn) { if (conn != null) { try { conn.rollback(); } catch (SQLException e) { e.printStackTrace(); } } } public static void setAutoCommit(Connection conn, boolean autoCommit) { if (conn != null) { try { conn.setAutoCommit(autoCommit); } catch (SQLException e) { e.printStackTrace(); } } } //测试是否连接成功 public static void main(String[] args) { DBUtil.getConnection(); System.out.println("---------ok---------"); } }
相关文章推荐
- mysql修改列的类型
- MySQL添加用户、删除用户与授权
- mysql 源码安装
- MySQL与MongoDB的操作对比
- mysql复制表结构,表数据
- SQL查表关键字使用简介
- 数据库对比
- ubuntu源码安装postgresql(问题解决)转载
- SQL 基本语法记录
- redis简介
- 在windows上面安装多个mysql
- 如何重置postgresql用户密码
- spark-sql(不包含hive-sql)查询编程
- MongoDB基本命令用【转】
- mysqli 批量执行多条语句
- Oracle ALL, ANY and SOME比较
- windows下设置redis密码
- redis操作命令
- redis操作命令
- MYSQL中取当前年份的第一天和当前周,月,季度的第一天/最后一天