编译及运行环境:winxp+jdk5.0+eclipse3.2+oracle9i
所需jar包:
oracle9.jar(oralce驱动器)
c3p0-0.9.1.2.jar
log4j-1.2.8.jar
commons-logging.jar
SystemConfigResources.properties
#oracle config
DRIVER_NAME=oracle.jdbc.driver.OracleDriver
DATABASE_URL=jdbc:oracle:thin:@127.0.0.1:1521:WORK
DATABASE_USER=system
DATABASE_PASSWORD=manager
#c3p0 config
Initial_PoolSize=10
Min_PoolSize=10
Max_PoolSize=50
Acquire_Increment=10
TIMEOUT=5000
MAX_IdleTime=1800
Idle_Test_Period=3000
Validate=true
SystemConfig.java
package com.database.config;
import java.util.*;
public class SystemConfig {
static String configFile = "com.database.config.SystemConfigResources";
public static String getConfigInfomation(String itemIndex) {
try {
ResourceBundle resource = ResourceBundle.getBundle(configFile);
return resource.getString(itemIndex);
} catch (Exception e) {
return "";
}
}
}
DatabaseAccessInterface.java
package com.database;
import java.sql.*;
import java.util.*;
public interface DatabaseAccessInterface {
public abstract void executeSQL(String sqlStatement) throws SQLException;
public abstract void executeSQL(String[] sqlStatement) throws SQLException;
public abstract void executeSQL(String sqlStatement, Object parameters[]) throws SQLException;
public abstract void executeSQL(String sqlStatement, List parameters) throws SQLException;
public abstract void executeSQL(String[] sqlStatement, List parameters) throws SQLException;
public abstract Vector executeQuerySQL(String sqlStatement) throws SQLException;
public abstract Vector executeQuerySQL(String sqlStatement, Object parameters[]) throws SQLException;
public abstract Vector executeQuerySQL(String sqlStatement, List parameters) throws SQLException;
public abstract String getSequenceNum(String tableName) throws SQLException;
}
DatabaseAccessFactory.java
package com.database;
public class DatabaseAccessFactory {
private static DatabaseAccessInterface databaseai = null;
public static DatabaseAccessInterface getDataAccessInstance() {
if (databaseai == null) {
databaseai = new DatabaseAccessImpl();
}
return databaseai;
}
}
DBConnectionManager.java
package com.database;
import java.sql.*;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import com.database.config.*;
import com.mchange.v2.c3p0.*;
public class DBConnectionManager {
private static Log log = LogFactory.getLog(DatabaseAccessImpl.class);
private static ComboPooledDataSource cpds = null;
public static void init() {
log.debug(">>>>>>>>>>>>>>>>>>>>> <DBConnectionManager.init> Begin");
// 建立数据库连接池
String DRIVER_NAME = SystemConfig.getConfigInfomation("DRIVER_NAME"); // 驱动器
String DATABASE_URL = SystemConfig.getConfigInfomation("DATABASE_URL"); // 数据库连接url
String DATABASE_USER = SystemConfig.getConfigInfomation("DATABASE_USER"); // 数据库用户名
String DATABASE_PASSWORD = SystemConfig.getConfigInfomation("DATABASE_PASSWORD"); // 数据库密�码
int Min_PoolSize = 5;
int Max_PoolSize = 50;
int Acquire_Increment = 5;
int Initial_PoolSize = 10;
int Idle_Test_Period = 3000;// 每隔3000s测试连接是否可以正常使用
String Validate = SystemConfig.getConfigInfomation("Validate");// 每次连接验证连接是否可用
if (Validate.equals("")) { Validate = "false"; }
// 最小连接数
try {
Min_PoolSize = Integer.parseInt(SystemConfig.getConfigInfomation("Min_PoolSize"));
} catch (Exception ex) {
ex.printStackTrace();
}
// 增量条数
try {
Acquire_Increment = Integer.parseInt(SystemConfig.getConfigInfomation("Acquire_Increment"));
} catch (Exception ex) {
ex.printStackTrace();
}
// 最大连接数
try {
Max_PoolSize = Integer.parseInt(SystemConfig.getConfigInfomation("Max_PoolSize"));
} catch (Exception ex) {
ex.printStackTrace();
}
// 初始化连接数
try {
Initial_PoolSize = Integer.parseInt(SystemConfig.getConfigInfomation("Initial_PoolSize"));
} catch (Exception ex) {
ex.printStackTrace();
}
// 每隔3000s测试连接是否可以正常使用
try {
Idle_Test_Period = Integer.parseInt(SystemConfig.getConfigInfomation("Idle_Test_Period"));
} catch (Exception ex) {
ex.printStackTrace();
}
try {
cpds = new ComboPooledDataSource();
cpds.setDriverClass(DRIVER_NAME); // 驱动器
cpds.setJdbcUrl(DATABASE_URL); // 数据库url
cpds.setUser(DATABASE_USER); // 用户名
cpds.setPassword(DATABASE_PASSWORD); // 密码
cpds.setInitialPoolSize(Initial_PoolSize); // 初始化连接池大小
cpds.setMinPoolSize(Min_PoolSize); // 最少连接数
cpds.setMaxPoolSize(Max_PoolSize); // 最大连接数
cpds.setAcquireIncrement(Acquire_Increment); // 连接数的增量
cpds.setIdleConnectionTestPeriod(Idle_Test_Period); // �测连接有效的时间间隔
cpds.setTestConnectionOnCheckout(Boolean.getBoolean(Validate)); // 每次连接验证连接是否可用
} catch (Exception ex) {
ex.printStackTrace();
}
log.debug(">>>>>>>>>>>>>>>>>>>>> <DBConnectionManager.init> End");
}
public static Connection getConnection() {// 获取数据库连接
Connection connection = null;
try {
if (cpds == null) {
init();
}
connection = cpds.getConnection(); // getconnection
} catch (SQLException ex) {
ex.printStackTrace();
}
return connection;
}
public static void release() {
try {
if (cpds != null) {
cpds.close();
}
} catch (Exception ex) {
ex.printStackTrace();
}
}
}
分享到:
相关推荐
C3P0是一个开源的JDBC连接池,它实现了数据源和JNDI绑定,支持JDBC3规范和JDBC2的标准扩展。目前使用它的开源项目有Hibernate,Spring等。
C3P0是一个开放源代码的JDBC连接池,它在lib目录中与Hibernate一起发布,包括了实现jdbc3和jdbc2扩展规范说明的Connection 和Statement 池的DataSources 对象
数据库连接池实现技术所需jar包
简单易懂,通过C3P0连接池实现对mysql数据库的添加数据。
【资源说明】 1、该资源包括项目的全部源码,下载可以直接使用!...基于SSM框架实现的高并发商品秒杀系统源码+项目说明(c3p0作为连接池,Redis为缓存实现高并发 ,同时通过MySQL优化降低了网络延迟与GC的影响).zip
C3P0是一个开源的JDBC连接池,它实现了数据源和JNDI绑定,支持JDBC3规范和JDBC2的标准扩展。目前使用它的开源项目有Hibernate,Spring等。
C3P0是一个开源的JDBC连接池,它实现了数据源和JNDI绑定,支持JDBC3规范和JDBC2的标准扩展。
RESTFUL + SPRINGMVC + C3P0连接池 的完美实现. 传递json数据到springmvc自动转为obj。obj传前台可直接转换为json。 rest配置文件内 修改,可同理兼容 JSON XML AMF 或其他各种。
用于连接c3p0数据库连接池,实现数据池的连接,可用于MySQL,SQL sever等数据库
实现连接池C3P0操作数据库实战实现连接池C3P0操作数据库实战实现连接池C3P0操作数据库实战实现连接池C3P0操作数据库实战-创建表
druid连接池与C3P0连接池jar包 Druid:数据库连接池实现技术 C3P0:数据库连接池技术
C3P0是一个随Hibernate一同分发的开源的JDBC连接池, 它位于lib目录下。 包括了实现jdbc3和jdbc2扩展规范说明的Connection 和Statement 池的DataSources 对象.
C3P0实现连接池和JNDI的绑定,支持JDBC3规范和JDBC2的标准扩展,拥有自动回收空闲连接的功能
c3p0连接池实现连接数据库、jquery-easyui-1.2.6实现分页显示、 项目使用webwind框架 实现简单的学生信息查询功能。
C3P0是一个开源的JDBC连接池,它实现了数据源和JNDI绑定,支持JDBC3规范和JDBC2的标准扩展。目前使用它的开源项目有Hibernate,Spring等。
acegi sample 基于数据库的DAO认证实现 Mysql的建表脚本在db目录下 为了减小体积,已经将WEB-INF\lib下的依赖包删除,请自行下载以下包,并拷贝至WEB-INF\lib下: spring-1.2.4.jar ... 用到c3p0做连接池技术
c3p0连接池使用方法
NULL 博文链接:https://boyce-lin.iteye.com/blog/983112
C3P0是一个开源的JDBC连接池,它实现了数据源和JNDI绑定,支持JDBC3规范和JDBC2的标准扩展。目前使用它的开源项目有Hibernate,Spring。
C3P0是一个开放源代码的JDBC连接池,它在lib目录中与Hibernate一起发布,包括了实现jdbc3和jdbc2扩展规范说明的Connection 和Statement 池的DataSources 对象 DBCP (Database Connection Pool)是一个依赖Jakarta ...