【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

注意:这个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

时间: 2024-10-12 19:09:52

【JDBC】使用连接池技术访问oracle的相关文章

JDBC连接池技术

一.连接池技术 (1)Java语言通过JDBC技术访问数据库的基本过程是: 1.加载数据库驱动程序: 2.通过JDBC建立数据库连接: 3.访问数据库,执行SQL语句: 4.断开数据库连接. (2)在Web应用程序开发中,使用这种模式访问数据库时,存在很多问题,为了解决这些问题,可以采用数据库连接池技术. 连接池实际上是在一个集合对象中存储一定数量的数据库连接对象.当程序需要使用数据库连接时,请求从池中获取一个空闲的连接, 程序使用完毕后再把连接放回池中重用.连接池通过重用连接的方法,减少了创建

解决Mysql连接池被关闭 ,hibernate尝试连接不能连接的问题。 (默认mysql连接池可以访问的时间为8小时,如果超过8小时没有连接,mysql会自动关闭连接池。系统发布第二天访问链接关闭问题。

解决Mysql连接池被关闭  ,hibernate尝试连接不能连接的问题. (默认MySQL连接池可以访问的时间为8小时,如果超过8小时没有连接,mysql会自动关闭连接池. 所以系统发布第二天访问会失去链接,导致访问失败.因此稳定解决办法是把hibernate默认的连接池换成c3p0链接池. 在Hibernate(spring管理)中的配置:<bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledData

day18(JDBC事务&连接池介绍&DBUtils工具介绍&BaseServlet作用)

day18总结 今日思维导图: 今日内容 事务 连接池 ThreadLocal BaseServlet自定义Servlet父类(只要求会用,不要求会写) DBUtils à commons-dbutils ? 事务 ? 事务的四大特性:ACID: mysql中操作事务 jdbc中操作事务 ? ? ? 事务概述 为了方便演示事务,我们需要创建一个account表: CREATE TABLE account( ????id INT PRIMARY KEY AUTO_INCREMENT, ????NA

连接池技术解密,连接池对我们不再陌生

一.为什么我们要用连接池技术? 前面的数据库连接的建立及关闭资源的方法有些缺陷.统舱传统数据库访问方式:一次数据库访问对应一个物理连接,每次操作数据库都要打开.关闭该物理连接, 系统性能严重受损. 解决方案:数据库连接池(Connection Pool).系统初始运行时,主动建立足够的连接,组成一个池.每次应用应用程序请求数据库连接时,无需重新打开连接,而是从池中取出已有的连接,使用完后,不再关闭,而是归还. 二.连接池主要由三部分组成:连接池的建立.连接池中连接的使用管理.连接池的关闭. 三.

JDBC之 连接池

JDBC之 连接池 有这样的一种现象: 用java代码操作数据库,需要数据库连接对象,一个用户至少要用到一个连接.现在假设有成千上百万个用户,就要创建十分巨大数量的连接对象,这会使数据库承受极大的压力,为了解决这种现象,一种技术出现了,这就是数据库连接池. 什么是数据库连接池(原理) 所谓数据库连接池,可以看作 :在用户和数据库之间创建一个”池”,这个池中有若干个连接对象,当用户想要连接数据库,就要先从连接池中获取连接对象,然后操作数据库.一旦连接池中的连接对象被拿光了,下一个想要操作数据库的用

集合、多线程、网络编程、JDBC、连接池、反射、综合应用

1.使用TCP连接服务器和客户端. 2.结合反射的知识.创建JDBC和连接池. 3.客户端输入信息并保存到一个对象中,发送到服务器. 4.服务器接收对象,通过JDBC存储进数据库中. 5.把服务器放到线程中,保持启动状态. 6.客户端读取数据库的数据信息,放到集合中. 7.遍历集合,输出数据库的数据. 服务器和客户端的项目结构: 服务器 客户端 实体类: package com.luo.project.pojo; import java.io.Serializable; public class

jdbc操作数据库(使用连接池技术)查询封装结果

连接池(DataSource) 目的是为了节省创建连接和销毁连接所需要花费的时间 提高程序的执行效率 DruidDataSource 创建连接池对象 1: DruidDataSource d = new DruidDataSource(); d.setDriverClassName(); d.setUrl() d.setUserName() d.setPassword() 2:    准备一个db.properties Properties p = new Properties(); p.loa

Java的连接池技术

如何使用JNDI(Java Naming and Directory Interface)是一个应用程序接口,为开发人员提供了查找和访问各种命名和目录服务的通用,统一的接口,类似JDBC都是构建在抽象层上.JNDI提供了一种统一的方式,可以用在网络上查找和访问服务.通过指定一个资源名称,该名称对应于数据库或命名服务中的一个一个记录,同时返回数据库连接建立所必需的信息. 在实际开发中,我们有时候还会使用服务器提供给我们的数据库连接池,比如我们希望Tomcat服务器在启动的时候可以帮助我们创建一个数

实现连接池技术的样例

1. 在tomcat的安装文件夹下conf文件夹下的context.xml文件加入例如以下代码: <Resource name="jdbc/course" auth="Container" //这个name是非常关键的.由于web.xml文件里也须要用到,在jsp中连接数据源也须要用到. type="javax.sql.DataSource" driverClassName="com.mysql.jdbc.Driver"