数据库jdbc连接--【DRP】

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>
原文地址:https://www.cnblogs.com/wangmei/p/5041897.html