单例设计模式中使用dom4j来完成(数据库配置文件)xml的解析,并完成数据库的连接
2012-08-08 17:26
1501 查看
本文主要简述的内容有单例设计模式、dom4j解析xml文件(这里解析的数据库的配置文件)、通过解析出来的配置信息完成数据库的连接。
1、首先要看的是单例设计模式
单例设计模式的实现有两种:饿汉式(预先加载)、懒汉式(延迟加载),下面分别来看这两种实现方式。
(1)、饿汉式(预先加载)
观察上面的这两种模式,看起来区别并不大,前一种方式是类一旦加载就得将对象实例化了,而后一种则是在使用的时候才进行判断是否要实例化对象,并且在后一种的getInstance方法中加入了同步,这样显得更加的合理,个人更加偏好于使用第二种方式。
2、使用dom4j来完成数据库配置文件的解析
给出下面这个数据库的配置文件sys-config.xml
(1)、保存数据库jdbc配置信息的模型类JdbcConfig.java
3、根据解析出了的配置信息完成数据库的连接
下面是一个完成数据库连接操作的测试工具类DbUtil.java
以上完成了单例模式下使用dom4j来读取数据库配置文件,并实现数据库的连接操作。
如果需要了解更多关于dom4j的使用,可以进入这儿http://blog.csdn.net/cselmu9/article/details/7843120进行查看。
1、首先要看的是单例设计模式
单例设计模式的实现有两种:饿汉式(预先加载)、懒汉式(延迟加载),下面分别来看这两种实现方式。
(1)、饿汉式(预先加载)
public class Singleton{ private static Singleton instance = new Singleton(); private Singleton(){} public static synchronized Singleton getInstance(){ return instance; } }(2)懒汉式(延迟加载)
public class Singleton{ private static Singleton instance = null; private Singleton(){} public static synchronized Singleton getInstance(){ if(instance==null){ instance = new Singleton(); } return instance; } }
观察上面的这两种模式,看起来区别并不大,前一种方式是类一旦加载就得将对象实例化了,而后一种则是在使用的时候才进行判断是否要实例化对象,并且在后一种的getInstance方法中加入了同步,这样显得更加的合理,个人更加偏好于使用第二种方式。
2、使用dom4j来完成数据库配置文件的解析
给出下面这个数据库的配置文件sys-config.xml
<?xml version="1.0" encoding="UTF-8"?> <config> <db-info> <driver>oracle.jdbc.driver.OracleDriver</driver> <url>jdbc:oracle:thin:@127.0.0.1:1521:ORCL</url> <user>username</user> <password>password</password> </db-info> </config>完成解析的java类:
(1)、保存数据库jdbc配置信息的模型类JdbcConfig.java
package org.ml.drp.util; /** * 用于保存数据库连接时的jdbc参数 * * @author MuLing * */ public class JdbcConfig { private String DbDriver; private String DbUrl; private String DbUser; private String DbPass; public String getDbDriver() { return DbDriver; } public void setDbDriver(String dbDriver) { DbDriver = dbDriver; } public String getDbUrl() { return DbUrl; } public void setDbUrl(String dbUrl) { DbUrl = dbUrl; } public String getDbUser() { return DbUser; } public void setDbUser(String dbUser) { DbUser = dbUser; } public String getDbPass() { return DbPass; } public void setDbPass(String dbPass) { DbPass = dbPass; } @Override public String toString() { return "JdbcConfig [DbDriver=" + DbDriver + ", DbUrl=" + DbUrl + ", DbUser=" + DbUser + ", DbPass=" + DbPass + "]"; } }(2)、解析数据库配置文件的工具类XmlConfigReader.java,这里使用单例模式完成,采用的是懒汉式。
package org.ml.drp.util; import java.io.InputStream; import org.dom4j.Document; import org.dom4j.DocumentException; import org.dom4j.Element; import org.dom4j.io.SAXReader; /** * 用于解析xml文件 * @author MuLing * */ public class XmlConfigReader { private JdbcConfig jdbcConfig = null; private static XmlConfigReader instance = null; private XmlConfigReader(){ SAXReader reader = new SAXReader();//取得SAXReader的对象 InputStream input = Thread.currentThread().getContextClassLoader().getResourceAsStream("sys-config.xml");//得到输入流对象 jdbcConfig = new JdbcConfig(); Document doc = null; try { doc = reader.read(input); //进行读取 } catch (DocumentException e) { e.printStackTrace(); } //取得对应的节点对象 Element driverEle = (Element)doc.selectObject("/config/db-info/driver"); Element urlEle = (Element)doc.selectObject("/config/db-info/url"); Element userEle = (Element)doc.selectObject("/config/db-info/user"); Element passwordEle = (Element)doc.selectObject("/config/db-info/password"); jdbcConfig.setDbDriver(driverEle.getStringValue()); jdbcConfig.setDbUrl(urlEle.getStringValue()); jdbcConfig.setDbUser(userEle.getStringValue()); jdbcConfig.setDbPass(passwordEle.getStringValue()); } public static synchronized XmlConfigReader getInstance(){ if(instance==null){ instance = new XmlConfigReader(); } return instance; } public JdbcConfig getJdbcConfig(){ return this.jdbcConfig; } }
3、根据解析出了的配置信息完成数据库的连接
下面是一个完成数据库连接操作的测试工具类DbUtil.java
package org.ml.drp.util; import java.sql.Connection; import java.sql.DriverManager; import java.sql.SQLException; /** * 封装数据库常用操作类 * @author MuLing * */ public class DbUtil { /** * 取得数据库的连接 * @return */ public static Connection getConnection(){ Connection conn = null; //取得数据库连接字符串 JdbcConfig jdbcConfig = XmlConfigReader.getInstance().getJdbcConfig(); String DBDRIVER = jdbcConfig.getDbDriver(); String DBURL = jdbcConfig.getDbUrl(); String DBUSER = jdbcConfig.getDbUser(); String DBPASS = jdbcConfig.getDbPass(); //1:注册驱动 try { Class.forName(DBDRIVER); } catch (ClassNotFoundException e) { e.printStackTrace(); } //2:获取连接 try { conn = DriverManager.getConnection(DBURL, DBUSER, DBPASS); } catch (SQLException e) { e.printStackTrace(); } //3:返回数据库连接 return conn; } //测试数据库的连接是否成功 public static void main(String args[]){ System.out.println(DbUtil.getConnection()); } }
以上完成了单例模式下使用dom4j来读取数据库配置文件,并实现数据库的连接操作。
如果需要了解更多关于dom4j的使用,可以进入这儿http://blog.csdn.net/cselmu9/article/details/7843120进行查看。
相关文章推荐
- 使用XML作为项目的配置文件使用,并解析之,获得数据作为链接数据库的参数
- java使用dom4j解析xml配置文件实现抽象工厂反射示例
- ibatis连接数据库的配置文件SqlMapConfig.xml---解析
- DOM4J 读取XML配置文件进行数据库连接
- DOM4J 读取XML配置文件进行数据库连接
- Spring中c3p0连接池的配置 及JdbcTemplate的使用 通过XML配置文件注入各种需要对象的操作 来完成数据库添加Add()方法
- Dom4j解析XML来读取数据库配置文件信息
- 使用XML作为项目的配置文件使用,并解析之,获得数据作为链接数据库的参数
- Java SAX解析器解析XML配置文件,连接数据库
- 用Dom4j解析自定义数据库XML配置文件
- 使用XML作为项目的配置文件使用,并解析之,获得数据作为链接数据库的参数
- 使用Hibernate连接h2数据库的配置文件写的方法(连接字符串)
- Oracle 使用配置文件来配置JDBC连接数据库
- 使用dom4j来解析,生成xml文件
- spring.xml配置文件连接数据库
- 【java】xml文件表建立及读取环境搭建并采用DOM4J完成XML文件导入到数据库
- Dom4J --- 使用dom4j解析XML时候忽略DTD文件
- 单例模式获取连接数据库配置文件
- 使用dom4j解析XML文件
- 使用weblogic连接池来得到数据库连接(通过配置文件进行读取的优化方案)