DBCP连接池

方法一:

package DBCPUtils;

import java.util.List;
import java.util.Properties;

import javax.sql.DataSource;

import org.apache.commons.dbcp.BasicDataSourceFactory;
import org.apache.commons.dbutils.QueryRunner;
import org.apache.commons.dbutils.handlers.ArrayListHandler;

public class DBCPUtils {

public static void main(String[] args) {
try {
// 读取配置文件
Properties properties = new Properties();
properties.load(DBCPUtils.class.getClassLoader()
.getResourceAsStream("jdbc.properties"));
// 从连接池中获取连接对象
DataSource dataSource = BasicDataSourceFactory
.createDataSource(properties);

String sql = "select * from emp";
QueryRunner qr = new QueryRunner(dataSource);
List<Object[]> list = qr.query(sql, new ArrayListHandler());
for (Object[] objects : list) {
for (Object object : objects) {
System.out.print(object + "\t");
}
System.out.println();
}

} catch (Exception e) {
e.printStackTrace();
}
}
}

方法二:

package DBUtils;

import java.io.InputStream;
import java.util.Properties;

import javax.sql.DataSource;

import org.apache.commons.dbcp.BasicDataSource;

public class DBUtils {
private static String DriverClass;
private static String url;
private static String username;
private static String password;
private static BasicDataSource dataSource = new BasicDataSource();
static {
loadRead();
dataSource.setDriverClassName(DriverClass);
dataSource.setUrl(url);
dataSource.setUsername(username);
dataSource.setPassword(password);
}

private static void loadRead() {
try {
InputStream in = DBUtils.class.getClassLoader()
.getResourceAsStream("jdbc.properties");
Properties properties = new Properties();
properties.load(in);
DriverClass = properties.getProperty("DriverClass");
url = properties.getProperty("url");
username = properties.getProperty("username");
password = properties.getProperty("password");
} catch (Exception e) {
e.printStackTrace();
}
}

public static DataSource getDataSource(){
return dataSource;
}

}

时间: 2024-10-27 03:55:29

DBCP连接池的相关文章

DBCP连接池使用问题

问题现象: 启动应用,访问无压力,一切正常,一段时间过后,应用访问异常. 问题分析: 1.web容器线程爆满,拒绝服务.由于应用并发量大,线程响应时间长增加,线程池连接数逐步递增直到爆满,导致应用拒绝服务. 2.通过对线程信息的分析,发现线程处理时间都卡在连接数据库中,通过对数据库服务器的检查,数据库是没有问题的. 3.通过查询服务器日志,发现数据库连接异常:连接超时. 4.查询DBCP连接池连接使用情况,空闲链接和使用链接还正常. 问题思考: 从以上信息可以确认,问题一定出在应用层,并且是应用

DBCP连接池与c3p0连接池

1.   DBCP连接池 2.  c3p0连接池(参见上一篇的使用步骤http://www.cnblogs.com/qlqwjy/p/7545012.html)

DBCP连接池简介

DBCP连接池简介 1.数据库连接基础 数据库连接池基础主要包括以下三个方面的内容:数据库连接池的基本概念.数据库连接池的工作原理.Java开源的连接池.下面将从这三个方面一一介绍: (1)数据库连接池的基本概念 数据库连接是一种关键的.有限的.昂贵的资源,这一点在多用户的Web应用程序中体现得尤为突出.对数据库连接的管理能显著影响到整个应用程序的伸缩性和健壮性,影响到程序的性能指标.因此,数据库连接池正是针对这个问题提出来的. 数据库连接池负责分配.管理和释放数据库连接,它允许应用程序重复使用

关于dbcp连接池的一个工具

注:需要的jar包: commons-dbcp-1.3.jar commons-pool-1.5.6.jar 配置文件 dbcpconfig.properties package cn.dbcp; import java.io.InputStream; import java.sql.Connection; import java.sql.ResultSet; import java.sql.SQLException; import java.util.Properties; import ja

DBCP连接池的使用

通过连接池(数据源)优化我们的操作. 需求: 使用jdbc的时候,没操作一次都需要获取连接(创建)用完之后把连接释放掉了(销毁),通过连接池来优化curd操作. 技术分析: 连接池 连接池概述: 管理数据库的连接, 作用: 提高项目的性能. 就是在连接池初始化的时候存入一定数量的连接,用的时候通过方法获取,不用的时候归还连接即可. 所有的连接池必须实现一个接口 javax.sql.DataSource接口 获取连接方法: Connection getConnection() 归还连接的方法就是以

使用c3p0与DBCP连接池,造成的MySql 8小时问题解决方案

本文提供了对c3p0与DBCP连接池连接MySql数据库时, 8小时内无请求自动断开连接的解决方案.首先介绍一下我在项目(c3p0连接池)中遇到的问题,后面还提供了使用DBCP连接池的解决方案. 项目环境: Java Web项目框架为Spring MVC+JPA,使用c3p0连接池,发布环境为Tomcat 7 错误描述: 项目运行一段时间(大概几个小时)之后访问时会出现第一次访问报错,再次访问正常的现象,且多次出现此问题. 报错日志: [plain] view plaincopy org.spr

DBCP连接池-方式1通过读取配置文件

连接池核心类DataSource 基于这个这个核心类,创建连接池也有多种方式,下面是方式一,通过读取配置文件的方式,创建数据库的连接池. DBCPUtils.java package com.itheima.a_dbcp; import java.io.InputStream; import java.sql.Connection; import java.sql.SQLException; import java.util.Properties; import javax.sql.DataSo

DBCP连接池配置参数说明

<!-- 数据源1 --> <bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close"> <property name="driverClassName" value="com.mysql.jdbc.Driver"/> <property n

Tomcat7中配置Oracle 11g数据库DBCP连接池

将       ojdbc6.jar       tomcat-jdbc-7.0.37.jar            拷贝到工程的WEB-INF\lib  下面 一.在Tomcat的配置文件Tomcat7.0\conf\context.xml中添加信息: ? 1 2 3 4 5 6 7 8 9 10 11 <?xml version='1.0' encoding='utf-8'?> <Resource  name="jdbcoracle"   auth="C

DBCP连接池介绍

# 初始化连接:连接池启动时创建的初始化连接数量 initialSize=1 # 最小空闲连接:连接池中容许保持空闲状态的最小连接数量,低于这个数量将创建新的连接,如果设置为0则不创建 minIdle=1 # 最大空闲连接:连接池中容许保持空闲状态的最大连接数量,超过的空闲连接将被释放,如果设置为负数表示不限制 maxIdle=2 # 最大活动连接:连接池在同一时间能够分配的最大活动连接的数量,如果设置为非正数则表示不限制 maxActive=3 # 借出连接时不要测试,否则很影响性能   te