使用dom4j读取xml ,加入jar包

dom4j-1.6.1.jar
jaxen-1.1-beta-6.jar

public class XmlConfigReader {
//懒汉式,延迟加载
private static XmlConfigReader instance=null;
private JdbcConfig jdbcConfig;
private XmlConfigReader(){
SAXReader reader=new SAXReader();
//获取当前线程的输入流
InputStream in=Thread.currentThread().getContextClassLoader().
getResourceAsStream("mysql-config.xml");
try {
//获取xml整个文档
Document doc=reader.read(in);
//获取节点 driverName
Element driverElt=(Element) doc.selectObject("/config/db-info/driverName");
//获取节点 url
Element urlElt=(Element) doc.selectObject("/config/db-info/url");
//获取节点 userName
Element userNameElt=(Element) doc.selectObject("/config/db-info/userName");
//获取节点 password
Element passwordElt=(Element) doc.selectObject("/config/db-info/password");
String driverName=driverElt.getStringValue();
String url=urlElt.getStringValue();
String userName=userNameElt.getStringValue();
String password=passwordElt.getStringValue();
jdbcConfig=new JdbcConfig(driverName, url, userName, password);

} catch (DocumentException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}

//注意用一个线程,因为单例模式有线程安全的问题,好比web我们学习的servlet,所以要加synchronized 
public static synchronized XmlConfigReader getInstance(){
if(instance==null){
instance=new XmlConfigReader();
}


return instance;
}
public JdbcConfig getJdbcConfig(){
return jdbcConfig;
}
public static void main(String[] args) {

//测试了一下,没问题
JdbcConfig jdbcConfig = XmlConfigReader.getInstance().getJdbcConfig();

System.out.println(jdbcConfig);
}

使用dom4j读取xml连接数据库与之单例模式的更多相关文章

  1. RSS阅读器(一)——dom4j读取xml(opml)文件

    接触java不久,偶有收获,最近想做一个web版RSS阅读器来锻炼一下.手头有几个从不同版本的foxmail中导出的opml文件,大家应该都知道,opml文件就是xml格式的.那么就先从这里入手,练习 ...

  2. 使用dom4j 读取XML文件

    第一次接触dom4j的时候,感觉这个东西很神秘,因为之前虽然知道XML文件吧,但从来没有用过,一直感觉XML肯定不好操作.当得知,dom4j可以很容易的操作读取XML文件时,不免有些好奇,那么,用do ...

  3. DOM4J读取XML文件

    最近在做DRP的项目,其中涉及到了读取配置文件,用到了DOM4J,由于是刚开始接触这种读取xml文件的技术,好奇心是难免的,于是在网上又找了一些资料,这里就结合找到的资料来谈一下读取xml文件的4中方 ...

  4. Java使用dom4j读取xml时报错:org.dom4j.DocumentException: Error on line 2 of document : Invalid byte 2 of 2-byte UTF-8 sequence. Nested exception: Invalid byte 2 of 2-byte UTF-8 sequence

    1.Java使用dom4j读取xml时报错: org.dom4j.DocumentException: Error on line 2 of document  : Invalid byte 2 of ...

  5. 【XML】利用Dom4j读取XML文档以及写入XML文档

    Dom4j简介 dom4j是一个Java的XML API,是jdom的升级品,用来读写XML文件的.dom4j是一个十分优秀的JavaXML API,具有性能优异.功能强大和极其易使用的特点,它的性能 ...

  6. DOM4J 读取XML配置文件进行数据库连接

        介绍介绍DOM4J.    据说是非常优秀非常优秀的Java XML  API(Dom4j is an easy to use, open source library for working ...

  7. 深入浅出Java Dom4j读取XML

    在以前自己使用的xml较少,只是了解其很强大,现在可算是在DRP中,真正的开始使用它了,以前只是简单的理解xml,xml即可扩展标记语言,简单的使用,具体是什么?怎么用?还是一直让自己期待的. 首先来 ...

  8. java DOM4J 读取XML

    最近学习Java,在处理XML文档的时候,查阅相关资料,发现了DOM4J这个jre库,相对C#的XML处理来说,功能还算是跟得上 下面展示一篇我自己写的一个XML读取测试 import java.ut ...

  9. dom4j 读取xml

    package core.util; import java.io.File; import java.util.Iterator; import java.util.List; import org ...

随机推荐

  1. shell 计算

    1.整数计算 n=$((/)) echo $n 输出 2(注意必须是两个括号) exper / / 注意这里不支持括号,a%b,a/b后取余 output: 1 2.小数计算 bc <<& ...

  2. Linux文件类型

    1.windows系统和Linux系统的区别 windows通过问价扩展名来区分文件类型,例如*.txt是一个文本文件, linux系统文件的扩展名和文件类型没有关系 为了容易区分文件类型,linux ...

  3. mac os 如何加载 Java Native/Shared Library (.jnilib)

    1 . 问题描述 今天在开发 Java 解压.z 文件的时候 需要加载 .jnilib 文件. 总是提示 Native code library failed to load. java.lang.U ...

  4. pic

  5. Json.net日期格式化

    1. 全局设置,可以在App_Global中配置 JsonSerializerSettings setting = new JsonSerializerSettings(); JsonConvert. ...

  6. 耿丹CS16-2班第六次作业汇总

    Deadline: 2016-11-13 11:59 作业内容 第六次作业总结 00.本次题目分值最高为**6分/题 × 7题 + 5分/篇 × 1篇 = 47分**,其中有新解法者每题加原创分**2 ...

  7. Anti XSS 防跨站脚本攻击库

    https://wpl.codeplex.com/ Before understanding Anti-Cross Site Scripting Library (AntiXSS), let us u ...

  8. connect/express 的参考

    1.Node.js[5] connect & express简介    对connect中间件的分类比较容易理解. http://www.cnblogs.com/luics/archive/2 ...

  9. 数独 JAVA实现

    数独游戏的规则从很久之前就知道,但是一直都没怎么玩过,然后到了大学,大一下学期自己学dfs的时候,刚刚好碰到了一个数独的题目,做出来后,感觉还是挺有成就感的 然后大二学了JAVA,看了下那个一些有关于 ...

  10. 修改jetty的默认端口号

    jetty默认端口是8080,修改端口号也很简单,首先进入到jetty服务器安装目录下会看到start.ini配置文件,这里就是jetty启动时加载的配置,其中包括要加载的模块,超时时间配置还有这里的 ...