一个小应用的dbcp和c3p0配置实例
2013-07-12 14:28
387 查看
以下是一个小应用的数据库连接池配置,包括DBCP和C3P0的配制方法
因为是小应用,完全不涉及访问压力,所以配置上采取尽量节约数据库资源的方式
具体要求如下:
初始化连接数为0
连接不够,需要新创建时,每次创建1个
尽快回收空闲连接
需要开启prepareStatement缓存
具体用代码来说明
因为是小应用,完全不涉及访问压力,所以配置上采取尽量节约数据库资源的方式
具体要求如下:
初始化连接数为0
连接不够,需要新创建时,每次创建1个
尽快回收空闲连接
需要开启prepareStatement缓存
具体用代码来说明
package com.yazuo.util; import com.mchange.v2.c3p0.ComboPooledDataSource; import org.apache.commons.dbcp.BasicDataSource; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.jdbc.core.JdbcTemplate; import java.util.Map; /** * Created by IntelliJ IDEA. * User: Luo * Date: 13-6-19 * Time: 下午3:33 */ public class JdbcTemplateFactory { static Logger log = LoggerFactory.getLogger(JdbcTemplateFactory.class); private static JdbcTemplate jdbcTemplate; /** * 获取单例的jdbcTemplate,基于c3p0 * * @return */ public static JdbcTemplate getJdbcTemplate() { if (jdbcTemplate == null) { synchronized (JdbcTemplateFactory.class) { if (jdbcTemplate == null) { try { //读取配置文件 Map<String, String> jdbcProps = PropertiesUtil.getPropertiesMap("jdbc.properties"); //创建连接池 ComboPooledDataSource dataSource = new ComboPooledDataSource(); dataSource.setJdbcUrl(jdbcProps.get("jdbc.url")); dataSource.setUser(jdbcProps.get("jdbc.username")); dataSource.setPassword(jdbcProps.get("jdbc.password")); //默认初始化连接为3,设置为0 dataSource.setInitialPoolSize(0); //默认每次创建连接数为3,设置为1 dataSource.setAcquireIncrement(1); //默认最小连接数是3,设置为0 dataSource.setMinPoolSize(0); //默认最长空闲时间为0,即不会回收空闲连接,设置为10秒 dataSource.setMaxIdleTime(10); //默认为不开启 prepareStatement 缓存,设置为最大缓存5个 dataSource.setMaxStatements(5); jdbcTemplate = new JdbcTemplate(dataSource); } catch (Exception e) { throw new IllegalStateException("数据库连接创建失败", e); } } } } return jdbcTemplate; } /** * 获取单例的jdbcTemplate,基于dbcp * * @return */ public static JdbcTemplate getJdbcTemplateByDbcp() { if (jdbcTemplate == null) { synchronized (JdbcTemplateFactory.class) { if (jdbcTemplate == null) { try { //读取配置文件 Map<String, String> jdbcProps = PropertiesUtil.getPropertiesMap("jdbc.properties"); //创建连接池 BasicDataSource dataSource = new BasicDataSource(); dataSource.setUrl(jdbcProps.get("jdbc.url")); dataSource.setUsername(jdbcProps.get("jdbc.username")); dataSource.setPassword(jdbcProps.get("jdbc.password")); dataSource.setInitialSize(3); //默认为不起动回收器,设置为30秒执行一次回收器 dataSource.setTimeBetweenEvictionRunsMillis(30 * 1000); //默认为30分钟不使用的连接被认为空闲,设置为10秒钟 dataSource.setMinEvictableIdleTimeMillis(10 * 1000); //开启 prepareStatement 缓存 dataSource.setPoolPreparedStatements(true); jdbcTemplate = new JdbcTemplate(dataSource); } catch (Exception e) { throw new IllegalStateException("数据库连接创建失败", e); } } } } return jdbcTemplate; } }
相关文章推荐
- tomcat配置及使用(环境变量设置及测试,一个简单的web应用实例)
- Web开发之tomcat配置及使用(环境变量设置及测试,一个简单的web应用实例)
- Oracle data integrator 11g安装配置和一个实例应用指南pdf
- 【转】解压缩版tomcat配置及使用(环境变量设置及测试,一个简单的web应用实例)
- Oracle 远程访问配置 在 Windows Forms 和 WPF 应用中使用 FontAwesome 图标 C#反序列化XML异常:在 XML文档(0, 0)中有一个错误“缺少根元素” C#[Win32&WinCE&WM]应用程序只能运行一个实例:MutexHelper Decimal类型截取保留N位小数向上取, Decimal类型截取保留N位小数并且不进行四舍五入操作
- tomcat配置及使用(环境变量设置及测试,一个简单的web应用实例)
- ssh框架,spring3配置c3p0数据源找不到jdbc的其中一个原因
- Windows下qt的环境配置及运行一个c++"hello world"实例详细步骤
- 开源JDBC连接池DBCP和C3P0配置
- Winform中的委托与事件 应用的一个小实例
- spring下,druid,c3p0,proxool,dbcp四个数据连接池的使用和配置
- 使用nRF51822/nRF51422创建一个简单的BLE应用 ---入门实例手册(中文)之四
- 使用nRF51822/nRF51422创建一个简单的BLE应用 ---入门实例手册(中文)之四
- 基于WCF应用的一个实例
- 简易计算器设计中的一个数据结构问题——Ada应用实例之二
- Tomcat配置多个Service,多个同名的应用运行在一个tomcat上
- 一个反射方法应用实例
- c3p0、dbcp、tomcat jdbc pool 连接池配置简介
- 配置Spring数据源dbcp与c3p0
- 实例解析:设计一个完全可扩展的应用