码迷,mamicode.com
首页 > 数据库 > 详细

【JDBC】使用连接池技术访问oracle

时间:2017-06-03 14:01:49      阅读:329      评论:0      收藏:0      [点我收藏+]

标签:pass   eth   generated   classname   nbsp   int   method   display   属性   

使用连接池访问数据库之前需要导入相关的jar包,

首先需要导入Oracle的驱动包,一般在安装Oracle数据库的目录下就有,读者的目录下就有一个ojdbc6.jar的驱动包。

然后再需要导入和连接池相关的jar包,比如:commons-dbcp-1.4.jar,和commons-pool-1.5.6.jar包。

下面是一个使用连接池包装好的工具包:

技术分享
driverClassName=oracle.jdbc.OracleDriver
url=jdbc:oracle:thin:@localhost:1521:xe
password=517839
username=system
db.properties

注意:这个db.properties文件不可以随便更改,因为driverClassName,url,password,username这几个值恰好可以和包装类里面的属性名称保持了一致,如果不一致可以使用如下的方法进行设置:

setDriverClassName()
setUrl()
setUsername()
setPassword()
技术分享
package com.xdl.util;

import java.io.IOException;
import java.io.InputStream;
import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.Properties;

import javax.sql.DataSource;

import org.apache.commons.dbcp.BasicDataSourceFactory;

public class DBCPUtilProperties {
    private  static  DataSource   datasource;
    static {
        InputStream  inputStream = DBCPUtilProperties.class
            .getClassLoader().getResourceAsStream("db.properties"); 
        Properties  pro  = new Properties();
        try {
            pro.load(inputStream);
            datasource = BasicDataSourceFactory.
                    createDataSource(pro);
            /**
             * 也可以设置驱动,用户名,账号,密码,如果db.properties里的属性名称改变了,可以通过下面的方式手动设置
             * datasource.setDriverClassName(pro.getProperty("driverClassName"));
             * datasource.setUrl(pro.getProperty("url"));
             * datasource.setUsername(pro.getProperty("username"));
             * datasource.setPassword(pro.getProperty("password"));
             */
        } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        } catch (Exception e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
        
    }
    public   static  Connection  getConnection(){
        try {
            return  datasource.getConnection();
        } catch (SQLException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
        return  null;
    }
    public  static  void  releaseResource(Connection conn,Statement st,ResultSet rs){
        if(rs != null) {
            try {
                rs.close();
            } catch (SQLException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }finally{
                rs = null;
            }
        }
        if(st != null) {
            try {
                st.close();
            } catch (SQLException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }finally{
                st = null;
            }
        }
        if(conn != null) {
            try {
                conn.close();
            } catch (SQLException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }finally{
                conn = null;
            }
        }
    }
    
}
DBCPUtilProperties.java

DBCPUtilProperties.java中包装好了加载驱动,获得连接,释放资源。

下面是一个测试类:

技术分享
package com.xdl.test;

import java.sql.Connection;

import com.xdl.util.DBCPUtilProperties;

public class DBCPUtilPropertiesTest {

    public static void main(String[] args) {
        // TODO Auto-generated method stub
        Connection  conn = DBCPUtilProperties.getConnection();
        System.out.println(conn);
    }
}
DBCPUtilPropertiesTest.java

 

【JDBC】使用连接池技术访问oracle

标签:pass   eth   generated   classname   nbsp   int   method   display   属性   

原文地址:http://www.cnblogs.com/HDK2016/p/6937007.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!