当前位置:Gxlcms > 数据库问题 > 【JDBC】使用连接池技术访问oracle

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

时间:2021-07-01 10:21:17 帮助过:13人阅读

=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   属性   

人气教程排行