目录

连接池定义

使用统一的规范:javax.sql.DataSource实现统一编程

常用开源连接池:

  • DBCP:tomcat
  • C3P0:hibernate

DBCP:

核心类::核心类BasicDataSource

Demo:

package per.liyue.code.connectionpool;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.sql.Connection;
import java.sql.SQLException;
import java.util.Properties;
import javax.sql.DataSource;
import org.apache.commons.dbcp.BasicDataSource;
import org.apache.commons.dbcp.BasicDataSourceFactory;
import org.junit.Test;
public class DbcpDemo {
@Test
public void Demo1() throws Exception{
/*
* 硬编码形式实现:核心类BasicDataSource
*/
BasicDataSource db = new BasicDataSource();
db.setUrl("jdbc:mysql:///hi"); //数据库连接字符串
db.setDriverClassName("com.mysql.jdbc.Driver"); //驱动
db.setUsername("root"); //用户名
db.setPassword("root"); //密码
db.setInitialSize(3); //初始化连接
db.setMaxActive(6); //最大连接
db.setMaxIdle(3000); //最大空闲时间 Connection conn = db.getConnection();
conn.prepareStatement("show tables").execute();
conn.close(); /*
* 配置文件实现
*/
//加载配置文件
Properties prop = new Properties();
//获取文件信息
InputStream inStream = DbcpDemo.class.getResourceAsStream("mydbcp.properties");
prop.load(inStream);
//根据配置创建数据源对象
DataSource dbProp = BasicDataSourceFactory.createDataSource(prop);
//获取连接
Connection connProp = db.getConnection();
connProp.prepareStatement("show tables").execute();
connProp.close();
//关闭 }
}

C3P0

核心类:ComboPooledDataSource

//...
//硬编码方式:
ComboPooledDataSource dbC3P0 = new ComboPooledDataSource();
// ... /*
* 自动加载src下的xml文件:c3p0-config.xml
*/
ComboPooledDataSource dbC3P0 = new ComboPooledDataSource();

14.连接池.md的更多相关文章

  1. day18 14.连接池介绍

    数据源在软件编程行业有两种概念:一种数据源指的是存储数据的源头(数据库啊文件啊叫数据源),一种指的是连接池(连接池的英文单词叫做DataSource,直译就是数据源).数据源可以指数据库,也可以指连接 ...

  2. jdbc pool java连接池技术

    1 ConnectPool .java: 2 3 package pool; 4 5 /** 6 * Title: ConnectPool.Java 7 * Description: 连接池治理器 8 ...

  3. druid连接池获取不到连接的一种情况

    数据源一开始配置: jdbc.initialSize=1jdbc.minIdle=1jdbc.maxActive=5 程序运行一段时间后,执行查询抛如下异常: exception=org.mybati ...

  4. mysql 最大连接数 & 连接池

    MySQL最大连接数 关于最大连接数:http://mg123.lofter.com/post/1a5f3e_996f838 可以通过修改配置文件(默认/etc/my.cnf)中的"mysq ...

  5. 选择c3p0作为连接池

    <hibernate-configuration>     <session-factory>         <property name="dialect& ...

  6. 解决Tomcat数据连接池无法释放

    近段时间,公司的检测中心报表系统(SMC)的开发人员时不时找到我,说用户老是出现无法登录的情况.前些日子因为手头上 有Jboss集群的测试工作,发现用户不能登录时,都是在Tomcat中将这个项目Rel ...

  7. 使用 TFDConnection 的 pooled 连接池

    从开始看到这个属性,就一直认为他可以提供一个连接池管理功能, 苦于文档资料太少, 甚至在帮助中对该属性的使用都没有任何介绍,如果你搜索百度,也会发现基本没资料. 最后终于在其官方网站看到了其完整相关的 ...

  8. dbcp连接池配置参数

    1.<!-- 数据源1 --> 2. <bean id="dataSource" 3. class="org.apache.commons.dbcp.B ...

  9. get/close not same thread Druid 连接池一个设置

    我就郁闷了,1000W+数据审核每次总是到一半就出这么个错,仔细找找原来是一个配置项的小问题,removeAbandonedTimeout 这个代表你从连接池取出一个连接多少秒之后你还没还回来,那就强 ...

随机推荐

  1. java下载excel,excel从数据库获取数据

    <!-- poi --> <dependency> <groupId>org.apache.poi</groupId> <artifactId&g ...

  2. 给 Windows 文件菜单添加 "用XX程序打开" "用XX编辑" "用XX运行"

    有什么用就不用多说了,这可是个很有用的技巧.可以创造自己的文件格式,也可以给已有的文件添加多种打开方式 在注册表[HKEY_CLASSES_ROOT]下找到或者建立对应的扩展名 如果想对所有文件都生效 ...

  3. time_base

    From:http://blog.csdn.net/supermanwg/article/details/14521869 FFMPEG的很多结构中有AVRational time_base;这样的一 ...

  4. python hashillb 模块

    hashlib主要提供字符加密功能,将md5和sha模块整合到了一起,支持md5,sha1, sha224, sha256, sha384, sha512等算法 import hashlib # ## ...

  5. Cmder - 在右键菜单添加"Cmder Here"

    使用命令行或终端工具的时候都有一个让我们觉得麻烦的问题,就是需要cd很多目录达到目标位置.在可视化操作系统下面我们一般都是已经处在目标目录了,这时需要执行某些命令如: python test.py 现 ...

  6. selenium元素定位Xpath,Contains,CssSelector

    最近有人问到定位问题,基本上我用以下三个方法可解决,但不同的项目使用方法不一样.以下为自己所用的简单记录说明 1.Xpath 经常使用且最能解决问题的定位 driver.findElement(By. ...

  7. HTMLTestRunner不生成报告

    使用HTMLTestRunner想生成测试报告,尝试了很多次了,就是无法生成,在百度搜索发现是快捷键问题 工具:Pycharm Ctrl+Shift+F10运行不会生成脚本 Alt+Shift+F10 ...

  8. python数组和矩阵使用总结

    python数组和矩阵使用总结 1.数组和矩阵常见用法 Python使用NumPy包完成了对N-维数组的快速便捷操作.使用这个包,需要导入numpy. SciPy包以NumPy包为基础,大大的扩展了n ...

  9. 2.HTML文件中<!DOCTYPE html>的作用

    <!DOCTYPE> 声明位于文档中的最前面的位置,处于 <html> 标签之前.此标签可告知浏 览器文档使用哪种 HTML 或 XHTML 规范.(重点:告诉浏览器按照何种规 ...

  10. python 小笔记

    1 删除非空文件夹 import shutil shutil.rmtree('c:\\test') print 'ok' ## 判断非空删除 if os.path.exists('../'+kemu_ ...