c3p0连接池配置

tomcat下c3p0连接池配置问题

◇◆丶佛笑我妖孽 提交于 2020-02-14 14:04:45
一.首先如果要使用这个连接池,就需要导入c3p0-0.9.2-pre1.jar架包和支持架包mchange-commons-0.2.jar, 我这里测试使用的是msql数据库 当然也需要导入mysql连接架包mysql-connector-java-5.1.26-bin.jar 下载地址:https://pan.baidu.com/s/1GXBVvLcATClOvZyF6k1z6g 二.我这里的配置文件结构如下 这里的c3p0-0.9.2-pre是主要架包 c3p0-config.xml必须在src目录下 才可以检测到 有三种方式使用c3p0这个jar 首先看一下配置文件c3p0-config.xml中的信息 <?xml version="1.0" encoding="UTF-8"?> <c3p0-config> <!-- This is default config! --> <!-- 默认配置 --> <default-config> <!-- 初始化时 c3p0-config连接池的初始化连接数 --> <property name="initialPoolSize">10</property> <!-- 连接空闲等待时间 超过这个时间 自动断开连接 --> <property name="maxIdleTime">30</property> <!-- 连接池最大连接数 --

c3p0,DBcp,Druid三大连接池

一世执手 提交于 2020-01-09 04:20:34
配置dbcp数据源 <!--配置数据源 datasource 使用dbcp数据库连接池--> < bean id = " dataSource " class = " org.apache.commons.dbcp.BasicDataSource " > < property name = " driverClassName " value = " ${jdbc.driver} " > </ property > < property name = " url " value = " ${jdbc.url} " > </ property > < property name = " username " value = " ${jdbc.username} " > </ property > < property name = " password " value = " ${jdbc.password} " > </ property > <!--初始化时 连接个数 默认是0--> < property name = " initialSize " value = " 5 " /> <!--同时连接的最大活动数 默认是8--> < property name = " maxActive " value = " 100 " /> <!--允许最大空闲数 不能配置太小--> <

元数据,DBUtils工具,连接池

大憨熊 提交于 2019-12-26 05:28:19
1 元数据 1 .1 作用 使用元数据,可以编写 jdbc预编译statement 的参数以及 ResultSet 的结果个数和名称 。 1.2 三种元数据 1 )数据库元对象( DatabaseMetaData ) 知道连接的哪个数据库,必须使用数据库的元数据对象 2 )参数元对象( ParameterMetaData ) insert into studnetx(xxxx) values(?,?); 预编译 sql 之后,知道预编译的 sql 有几个参数,必须使用参数元数据 3 )结果集元对象 (ResultSetMetaData) ResultSet rs 知道表的字段数,和字段名称,必须使用结果集的元数据 1.3 方法 ParameterMetaData pmd = stmt.getParameterMetaData();// 获取参数元数据 int paramCount = pmd.getParameterCount();// 获取占位符参数的个数 ResultSetMetaData rsmd = rs.getMetaData();// 获取返回结果的结果集元数据 int columnCount = rsmd.getColumnCount(); //得到列数量 String columnName = rsmd.getColumnName(i); //到字段名称 2

数据库连接池

旧时模样 提交于 2019-12-26 05:25:24
数据库连接池 一、什么是数据库连接池   数据库连接是一种关键的、有限的、昂贵的资源。每次用户获取数据库连接都需要消耗较大的资源,数据库连接池可以管理连接,可以重复使用连接而不需要每次都进行创建。使用池来管理连接的生命周期,可以节省资源,提高性能。用池来管理Connection,这可以重复使用Connection。有了池,我们就不用自己来创建Connection,而是通过池来获取Connection对象。当使用完Connection后,调用Connection的close()方法也不会真的关闭Connection,而是把Connection“归还”给池。池就可以再利用这个Connection对象了。数据库连接池的原理通俗地说:先创建好几个数据库放在池里,等系统需要用了直接去连接,并做上标记(连接),用完后再将数据库连接还回到池里,同时做上标记(空闲)。当有连接需求时,此时又没有空闲数据库连接,则会新建立连接放入池中。而这些参数我们都可以自己进行配置,如:   - 初始大小:10个   - 最小空闲连接数:3个   - 增量:一次创建的最小单位(5个)   - 最大空闲连接数:12个   - 最大连接数:20个   - 最大的等待时间:1000毫秒 二、常见连接池   这里总结下两个常见的连接池:DBCP和c3p0。导包是使用数据库连接池的第一步,   1.DBCP: 导jar包

关于 C3p0Utils 数据库连接池 的配置和环境搭建 & 使用Demo

寵の児 提交于 2019-12-18 13:38:28
文章目录 数据库连接池技术的优点 配置C3P0连接池 执行C3P0连接池 数据库连接池技术的优点 资源重用 更快的系统反应速度 ​ 数据库连接池在初始化过程中,往往已经创建了若干数据库连接置于连接池中备用 。此时连接的初始化工作均已完成。对于业务请求处理而言,直接利用现有可用连接,避免了数据库连接初始化和释放过程的时间开销,从而 减少了系统的响应时间 。 新的资源分配手段 ​ 对于 多应用共享同一数据库的系统 ,可在应用层 通过数据库连接池的配置 , 限制应用可用数据库连最大连接次数 , 避免某一应用独占所有的数据库资源 。 统一的连接管理,避免数据库连接泄露 ​ 可根据预先的占用超时设定 , 强制回收被占用连接 ,从而 避免 了常规数据库连接操作中可能出现的 资源泄露 配置C3P0连接池 创建lib文件夹,导入 c3p0-0.9.5.2.jar 、 mchange-commons-java-0.2.11.jar ,并建立关联( Builder Path ) 导入 c3p0-config.xml 到src 配置 c3p0-config.xml 文件 执行C3P0连接池 项目中使用C3P0执行SQL语句 /**No.1创建C3P0连接池*/ ComboPooledDataSource oracle = new ComboPooledDataSource ( "oracle" ) ;

JDBC使用 C3P0连接池 demo

孤街浪徒 提交于 2019-12-03 21:24:01
C3P0连接池 Demo-手动配置使用 public void demo(){ // 获得连接: Connection conn = null; PreparedStatement pstmt = null; ResultSet rs = null; try{ // 创建连接池: ComboPooledDataSource dataSource = new ComboPooledDataSource(); // 设置连接池的参数: dataSource.setDriverClass("com.mysql.jdbc.Driver"); dataSource.setJdbcUrl("jdbc:mysql:///test"); dataSource.setUser("root"); dataSource.setPassword("hello"); dataSource.setMaxPoolSize(20); dataSource.setInitialPoolSize(3); // 获得连接: conn = dataSource.getConnection(); // 编写Sql: String sql = "select * from user"; // 预编译SQL: pstmt = conn.prepareStatement(sql); // 设置参数 // 执行SQL: rs =

数据库连接池

你说的曾经没有我的故事 提交于 2019-11-30 12:17:03
这两天公司的事情不忙,看了一下ssh的框架,在看spring框架的时候看到数据源这一块。就想知道数据源这一块是怎么实现的,以前也有学习过数据源,但感觉没那么系统。在网上看到一个详细介绍数据库连接池的,摘抄记录一下。 一、应用程序直接获取数据库连接的缺点   用户每次请求都需要向数据库获得链接,而数据库创建连接通常需要消耗相对较大的资源,创建时间也较长。假设网站一天10万访问量,数据库服务器就需要创建10万次连接,极大的浪费数据库的资源,并且极易造成数据库服务器内存溢出、拓机。如下图所示:    二、使用数据库连接池优化程序性能 2.1、数据库连接池的基本概念    数据库连接是一种关键的有限的昂贵的资源,这一点在多用户的网页应用程序中体现的尤为突出.对数据库连接的管理能显著影响到整个应用程序的伸缩性和健壮性,影响到程序的性能指标.数据库连接池正式针对这个问题提出来的. 数据库连接池负责分配,管理和释放数据库连接,它允许应用程序重复使用一个现有的数据库连接,而不是重新建立一个 。如下图所示:    数据库连接池在初始化时将创建一定数量的数据库连接放到连接池中, 这些数据库连接的数量是由最小数据库连接数来设定的.无论这些数据库连接是否被使用,连接池都将一直保证至少拥有这么多的连接数量.连接池的最大数据库连 接数量限定了这个连接池能占有的最大连接数

三种数据库连接池的配置及使用(For JDBC)

牧云@^-^@ 提交于 2019-11-28 05:03:28
连接池的优缺点 优点 使用连接池的最主要的优点是性能。创建一个新的数据库连接所耗费的时间主要取决于网络的速 度以及应用程序和数据库服务器的 ( 网络 ) 距离,而且这个过程通常是一个很耗时的过程。而采用 数据库连接池后,数据库连接请求可以直接通过连接池满足而不需要为该请求重新连接、认证到 数据库服务器,这样就节省了时间。 缺点 数据库连接池中可能存在着多个没有被使用的连接一直连接着数据库 ( 这意味着资源的浪费 ) 。 DBCP 一、导包 Apache官网下载DBCP包,导入两个包路径如下: commons-dbcp-1.4-bin\commons-dbcp-1.4\commons-dbcp-1.4.jar:连接池的实现 commons-pool-1.5.6-bin\commons-pool-1.5.6\commons-pool-1.5.6.jar:连接池实现的依赖库 CSDN上jar包的下载地址:http://download.csdn.net/detail/u012802702/9491642 二、代码示例: 方式一:使用BasicDataSource 通过方法设置连接参数。 [java] view plain copy //获取BasicDataSource并配置,开始.... BasicDataSource source = new BasicDataSource();

JDBC之 连接池

喜你入骨 提交于 2019-11-28 00:57:04
JDBC 之 连接池 有这样的一种现象: 用 java 代码操作数据库,需要数据库连接对象,一个用户至少要用到一个连接。现在假设有成千上百万个用户,就要创建十分巨大数量的连接对象,这会使数据库承受极大的压力,为了解决这种现象,一种技术出现了,这就是数据库连接池。 什么是数据库连接池(原理) 所谓数据库连接池,可以看作 :在用户和数据库之间创建一个”池”,这个池中有若干个连接对象,当用户想要连接数据库,就要先从连接池中获取连接对象,然后操作数据库。一旦连接池中的连接对象被拿光了,下一个想要操作数据库的用户必须等待,等待其他用户释放连接对象,把它放回连接池中,这时候等待的用户才能获取连接对象,从而操作数据库。 数据库连接池的属性 连接对象初始的数量: initSize ,一开始就创建若干个,当不够时再添加 连接对象最大数量: maxSize ,添加到最大值则不会再添加 下面我们用代码下一个自己的连接池吧 ~ 实现自己的连接池 看下面代码和注释吧 ~ public class MyPool { //设置注册属性 private String url = "jdbc:mysql://localhost:3306/vmaxtam"; private String user = "root"; private String password = "root"; private static