【XML】——利用dom4j读取xml文本获取oracle数据库的连接

前端之家收集整理的这篇文章主要介绍了【XML】——利用dom4j读取xml文本获取oracle数据库的连接前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

【前言】

最近学习drp的知识,在回顾xml的时候,又学习了一种读取xml的新的方式:dom4j技术。 dom4j属于java 的xml API,关于dom4j.jar中的类与方法,我们浏览官方的文档学习下:http://tool.oschina.net/apidocs/apidoc?api=dom4j1.6.1%2Fapidocs,下面我就一个例子来实践dom4j读取的xml的方式!

内容

A:准备条件:

引入Jar包:

1.dom4j-1.6.1.jar和jaxen-1.1-beta.jar

2.ojdbc14.jar

dom4j-1.6.1.jar主要作用是读取xml的文件

jaxen主要是一个开源的xpath库,可以协助dom4j找到xml标签中的内容

ojdbc主要是OracleDrive驱动类,可以与oracle数据库连接

B:逻辑及代码展示

1.将需要获取的oracle的jdbc的内容封装实体:JdbcConfig.java

package com.bjpowernode.drp.util;

public class JdbcConfig {
  private String url;
  private String drivename;
  private String username;
  private String password;
  
  public String getUrl() {
	return url;
}
public void setUrl(String url) {
	this.url = url;
}

public String getDrivename() {
	return drivename;
}
public void setDrivename(String drivename) {
	this.drivename = drivename;
}
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;
}
/**
 * 对Object的tostring方法进行重写!
 */
@Override
public String toString() {
	// TODO Auto-generated method stub
	return this.getClass().getName()+ "{DriverName:"+drivename+",URl:"+url+",UserName:"+username+",Password:"+password+"}";
}

}
2.用 xml文本写入oracle数据库的相关信息:url,oracle的drivername,以及username和password:

命名:sys-conf.xml

<?xml version="1.0" encoding="UTF-8"?>
<config>
<db-info>
	  <driver-name>oracle.jdbc.driver.OracleDriver</driver-name>
	  <url>jdbc:oracle:thin:@localhost:1521:ORALCEDB</url>
	  <user-name>system</user-name>
	  <password>cyl</password>
</db-info> 
</config>

3.使用dom4j读取xml文本,并且赋值给已经封装好的oracle的jdbc的实体:

package com.bjpowernode.drp.util;

import java.io.InputStream;

import org.dom4j.Document;
import org.dom4j.DocumentException;
import org.dom4j.Element;
import org.dom4j.io.SAXReader;

/**
 *解析sys-config.xml 文件
 * @author cyl520
 *
 */
public class XmlConfigReader {

   //懒汉式加载-常银玲-2017年3月11日16:44:19
	private static XmlConfigReader instance=null;
	//保存jdbc的相关配置信息。
	private JdbcConfig jdbcConfig=new JdbcConfig();
	private XmlConfigReader(){
		//采用的是dom4j的方式读取xml的中内容
       SAXReader saxReader=new SAXReader();
        //资源加载,输入流
       InputStream inputStream= Thread.currentThread().getContextClassLoader().getResourceAsStream("sys-conf.xml");
     try {
	   Document doc= saxReader.read(inputStream);
 //*******取得jdbc相关的信息------------------------------------------
	//获取drivername
	Element driverElement=(Element)doc.selectObject("/config/db-info/driver-name");
        //获取url
        Element urlElement=(Element)doc.selectObject("/config/db-info/url");
       //获取用户名
       Element usernamElement=(Element)doc.selectObject("/config/db-info/user-name");
       //获取密码
       Element password=(Element)doc.selectObject("/config/db-info/password"); 
      
 //*******将获取的xml中的内容存入到jdbcconfig实体中--------------------------------
       jdbcConfig.setDrivename(driverElement.getStringValue());
       jdbcConfig.setUrl(urlElement.getStringValue());
       jdbcConfig.setUsername(usernamElement.getStringValue());
       jdbcConfig.setPassword(password.getStringValue());
	      
	} catch (DocumentException e) {
		// TODO: handle exception
		e.printStackTrace();
	}
	}
	
	  /**
	   * 返回实例化的xmlconfigReader	
	   * @return
	   */
       public static synchronized XmlConfigReader getInstance() {
	 if (instance==null) {
	     instance=new XmlConfigReader();}
	 return instance;
	}

    /**
     *返回jdbc的相关配置。
     * @return
     */

	public JdbcConfig getJdbcConfig() {
		return jdbcConfig;
	}
}
4.将已经得到jdbcConfig实体获取oracle连接:

package com.bjpowernode.drp.util;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.sqlException;

/**
 * 用于连接数据!
 * @author cyl520
 *
 */

public class DbUtil {
   
	public static Connection getConnection(){
		 Connection conn=null;
		 try {
			 //1.获取jdbcconfig的配置内容
			 JdbcConfig jdbcConfig=XmlConfigReader.getInstance().getJdbcConfig();
			 //2.根据jdbc中的drivername去寻找ojdbc的类
			 Class.forName(jdbcConfig.getDrivename());
			 //3.连接
			 conn=DriverManager.getConnection(jdbcConfig.getUrl(),jdbcConfig.getUsername(),jdbcConfig.getPassword());
		} catch (ClassNotFoundException e) {
			e.printStackTrace();
		}catch (sqlException e) {
			e.printStackTrace();
		}
		return conn;
	}
	public static void main(String[] args){
        Connection connString=DbUtil.getConnection();
		System.out.println(connString);	
	}

}

【总结】:

其实在没有学习Java之前我们应用的都是dom技术,使用dom来读取xml标签,后来dom4j是Java的xml的API,越来愈多的使用dom4j来读取xml,在了解xml的时候发现读取xml的方式不只是我们学习到的xml以及dom4j技术,当然还有Java的SAX技术,以及jdom技术,将在后面的博客中提到,希望对您有帮助!

猜你在找的XML相关文章