您的位置:首页 > 数据库 > Oracle

什么是Dom4j及其初级使用方法

2010-09-02 19:50 447 查看
什么是Dom4j及其初级使用方法
(一)什么是Dom4j?
Dom4j是Document for Java的简称,是用java解析dom文档的组件。
在绝大多数应用中,都会需要配置文件。比如要将数据库从mysql改为oracle,使用配置文件会很方便,而不需要修改代码,所以解析配置文件、读取信息也是代码的一部分。
如今有很多种解析xml文件的方式:DOM、SAX、JDom、Dom4j等等。其中最优秀、使用最广的就是Dom4j。著名的Hibernate框架也是使用这的,Sun官方也是使用Dom4j的。关于上面四者的介绍与优缺点可参考:http://qqwyy.javaeye.com/blog/150227
(二)Dom4j怎么解析XML
下面我们就以数据库的配置文件为例,来讲解一下Dom4j是怎么解析xml文件的。
平时我们在用java代码连接数据库时,肯定会用到Class.forName(className);conn = DriverManager.getConnection(url,username, password);如果更换了数据库,就会更换className、url,或者更换了username、password,这样都会更改代码,这样的方式是不合理的。所以应该把这些会变更的代码提取在配置文件里,以后要更换了数据库,可以直接修改配置文件,而不用更改代码。数据库配置文件DBConfig.xml如下:
<?xml version="1.0" encoding="UTF-8"?>

<db_config>

<driver-name>oracle.jdbc.driver.OracleDriver</driver-name>

<url>jdbc:oracle:thin:@localhost:1521:oracle</url>

<username>admin</username>

<password>admin</password>

</db_config>

那么Dom4j怎么解析该xml文件呢?
首先要使用Dom4j先引入jar包。下载Dom4j,以dom4j-1.6.1为例:将dom4j-1.6.1.jar和lib/jaxen-1.1-beta-6.jar两jar包加入。
接着解析代码如下:
import org.dom4j.Document;

import org.dom4j.DocumentException;

import org.dom4j.Element;

import org.dom4j.io.SAXReader;

public class DBConfig {

static String[] dbInfo = new String[4];

// 使用单例模式

private static DBConfig instanse = null;

private DBConfig() {

Document d1 = null;

try {

d1 = new SAXReader().read(Thread.currentThread()

.getContextClassLoader()

.getResourceAsStream("DBConfig.xml"));

Element e1 = (Element) d1

.selectObject("/db_config/driver-name");

Element e2 = (Element) d1.selectObject("/db_config/url");

Element e3 = (Element) d1

.selectObject("/db_config/username");

Element e4 = (Element) d1

.selectObject("/db_config/password");

dbInfo[0] = e1.getStringValue();

dbInfo[1] = e2.getStringValue();

dbInfo[2] = e3.getStringValue();

dbInfo[3] = e4.getStringValue();

} catch (DocumentException e) {

e.printStackTrace();

}

}

public static DBConfig getInstance() {

if (instanse == null) {

instanse = new DBConfig();

}

return instanse;

}

public String[] getDbInfo() {

return dbInfo;

}

//一个main测试方法:

public static void main(String[] args){

String[] dbInfo = DBConfig. getInstance(). getDbInfo();

for(int i= 0;i< dbInfo.lenght;i++){

System.out.println(dbInfo[i]);

}

}

}

 
代码使用单例模式,只有一个实例。在构造方法中读取DBConfig.xml文件并解析。这样读取一次后,以后就再也不用读取文件了,直接使用既可以了。如果要更换数据库,可以直接修改DBConfig.xml文件。
到此就完成了xml文件的解析。因此可以用Dom4j解析xml文件了。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息