DbUtil数据库工具类代码:
package com.bjpowernode.drp.util; import java.sql.Connection; import java.sql.DriverManager; import java.sql.PreparedStatement; import java.sql.SQLException; import java.sql.ResultSet; import java.sql.Statement; //JDBC工具类 public class DbUtil { /* *采用单例模式 取得Connection * @return * */ public static Connection getConnection(){ /* Connection conn=null; try{ Class.forName("oracle.jdbc.driver.OracleDriver"); String url="jdbc:oracle:thin:@localhost:1521:orcl"; String username="wm"; String password="A123456a"; conn=DriverManager.getConnection(url,username,password); }catch(ClassNotFoundException e){ e.printStackTrace(); }catch(SQLException e){ e.printStackTrace(); } return conn;*/ Connection conn=null; //数据连接为空 try{ JdbcConfig jdbcConfig=XmlConfigReader.getInstance().getJdbcConfig();//获得数据库配置文件 Class.forName(jdbcConfig.getDriverName());//加载数据库驱动程序 //使用jdbc连接数据库的地址,用户名,密码 conn=DriverManager.getConnection(jdbcConfig.getUrl(),jdbcConfig.getUserName(),jdbcConfig.getPassword()); }catch(ClassNotFoundException e){ e.printStackTrace(); }catch(SQLException e){ e.printStackTrace(); } return conn; } //关闭数据库连接 public static void close(Connection conn){ if(conn !=null){ try { conn.close(); } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); } } } //关闭数据库程序集 public static void close(ResultSet rs){ if(rs!=null){ try { rs.close(); } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); } } } //关闭SQL编译集 public static void close(Statement pstmt){ if(pstmt!=null){ try { pstmt.close(); } catch (SQLException e) { e.printStackTrace(); } } } //测试类 public static void main(String[] args){ System.out.println(DbUtil.getConnection()); } }
JdbcConfig.java
package com.bjpowernode.drp.util; /* * jdbc配置信息 * * */ public class JdbcConfig { private String driverName; private String url; private String userName; public String getUserName() { return userName; } public void setUserName(String userName) { this.userName = userName; } private String 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 getPassword() { return password; } public void setPassword(String password) { this.password = password; } @Override public String toString() { // TODO Auto-generated method stub return this.getClass().getName()+ "{driverName:"+driverName+",url:"+url+", userName:"+userName+"}"; } }
xmlConfigeReader.java
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 Administrator * */ public class XmlConfigReader { //饿汉式单例模式,上来就new(预先加载) /*private static XmlConfigReader instance=new XmlConfigReader(); private XmlConfigReader(){ } public static XmlConfigReader getInstance(){ return instance; } */ //懒汉式(延迟加载) private static XmlConfigReader instance=null; //保存jdbc相关配置信息 private JdbcConfig jdbcConfig=new JdbcConfig(); //私有方法 private XmlConfigReader(){ SAXReader reader=new SAXReader(); //输入流,获取xml文件 InputStream in= Thread.currentThread().getContextClassLoader().getResourceAsStream("sys-config.xml"); try { Document doc= reader.read(in); //取得jdbc相关配置信息 //获取姓名信息 Element driverNameElt= (Element)doc.selectObject("/config/db-info/driver-name"); //获取url地址 Element urlElt=(Element)doc.selectObject("/config/db-info/url"); //获取用户姓名 Element userNameElt=(Element)doc.selectObject("/config/db-info/user-name"); //获取用户密码 Element passwordElt=(Element)doc.selectObject("/config/db-info/password"); //取得jdbc相关的配置 jdbcConfig.setDriverName(driverNameElt.getStringValue()); jdbcConfig.setUrl(urlElt.getStringValue()); jdbcConfig.setUserName(userNameElt.getStringValue()); jdbcConfig.setPassword(passwordElt.getStringValue()); String driverName=driverNameElt.getStringValue(); String url=urlElt.getStringValue(); String userName=userNameElt.getStringValue(); @SuppressWarnings("unused") String password=passwordElt.getStringValue(); System.out.println(driverName); } catch (DocumentException e) { e.printStackTrace(); } } //公共的静态的方法,加入互斥锁synchronized public static synchronized XmlConfigReader getInstance(){ if(instance==null){ instance =new XmlConfigReader(); } return instance; } /* * 返回jdbc相关配置 * */ public JdbcConfig getJdbcConfig(){ return jdbcConfig; } public static void main(String[] args){ // JdbcConfig jdbcConfig= XmlConfigReader.getInstance().getJdbcConfig(); // System.out.println(jdbcConfig.getDriverName()); // System.out.println(jdbcConfig.getUrl()); // System.out.println(jdbcConfig.getUserName()); System.out.println(); } }
sys-config.xml
<?xml version="1.0" encoding="UTF-8"?> <config> <db-info> <driver-name>oracle.jdbc.driver.OracleDriver</driver-name> <url>jdbc:oracle:thin:@127.0.0.1:1521:ORCL</url> <user-name>drp1</user-name> <password>drp1</password> </db-info> </config>