zoukankan      html  css  js  c++  java
  • 数据库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>
  • 相关阅读:
    iOS Provision 要点记录
    (FIFO)有名管道在无亲缘进程间的通信
    uuid Makefile share
    浅谈C语言中的联合体
    消息队列 进程通信
    onvif makefile without share
    共享内存 进程通信
    共享内存(非map) 进程通信
    消息队列 两个进程
    linux 进程通信
  • 原文地址:https://www.cnblogs.com/wangmei/p/5041897.html
Copyright © 2011-2022 走看看