JDBC使用连接池技术访问oracle
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了JDBC使用连接池技术访问oracle相关的知识,希望对你有一定的参考价值。
使用连接池访问数据库之前需要导入相关的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文件不可以随便更改,因为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中包装好了加载驱动,获得连接,释放资源。
下面是一个测试类:
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); } }
以上是关于JDBC使用连接池技术访问oracle的主要内容,如果未能解决你的问题,请参考以下文章
java程序访问数据库,dbcp连接池,hibernate连接总是报池连接用光了/JDBC连接没有报错