JDBC连接池C3P0,druid
数据库连接池
什么是数据库连接池:
- 将多个连接对象放在一个类似于list的集合中,做到需要用到连接的时候就去池子中获取Connection连接对象,不用就放回池子中,不用频繁的获取连接池,关闭连接池.而是用时去池子中拿,不用就还回去
连接池的作用:
- 避免重复创建链接, 提升程序的执行效率
C3P0连接池
导包
c3p0-0.9.5.2.jar
mchange-commons-java-0.2.12.jar
https://mvnrepository.com,可以在maven网站去下载配置C3P0配置信息
注意:配置文件名称一定要是:c3p0-config.xml,并且在src目录下
<c3p0-config><!-- 使用默认的配置读取连接池对象 --><default-config><!-- 连接参数 --><property name="driverClass">com.mysql.jdbc.Driver</property><property name="jdbcUrl">jdbc:mysql://192.168.93.132:3306/jdbc</property><property name="user">root</property><property name="password">root</property><!-- 连接池参数 --><!--初始化的连接数量--><property name="initialPoolSize">5</property><!--最大连接数量--><property name="maxPoolSize">10</property><!--超时时间--><property name="checkoutTimeout">3000</property></default-config>
</c3p0-config>
--注意-- 配置信息中的ip地址端口号,用户名,密码要和你mysql安装服务器的ip和用户名密码匹配
- 编写代码测试连接池以及连接数量
public class C3P0Test {public static void main(String[] args) throws Exception{//1.创建c3p0的数据库连接池对象DataSource dataSource = new ComboPooledDataSource();//2.循环11次,从连接池中获取11次连接对象,看看是否有重复的,有,就说明是从池子中获取的连接对象for(int i = 1; i <= 11; i++) {Connection con = dataSource.getConnection();System.out.println(i + ":" + con);//当循环第5次的时候,把5次的这个连接对象还回连接池if(i == 5) {con.close();}}}
}
运行结果
总结
由上面的代码案列得知,当循环到第5次获取连接对象的时候,就把链接对象还回给链接池了,后面链接就会拿到上一次还回去的对象,因为我们前面配置文件配置的是最大连接数量10,我们测试循环拿11次,如果不还回去就会报如下错误:因为最大连接数量是10,第11个获取 连接对象的时候发现池子里没有连接对象,就会等待我们上面配置文件中设置的多少时间.
关于C3P0就先了解到这里
druid连接池:
导包
去maven网站搜索druid下载复制在lib目录下导入即可
配置druid的配置文件(是properties配置文件)
在src目录下,名字随便取:我这里叫:druid.properties
driverClassName=com.mysql.jdbc.Driver
url=jdbc:mysql://192.168.93.132:3306/jdbc
username=root
password=root
# 初始化连接数量
initialSize=5
# 最大连接数量
maxActive=10
# 超时时间
maxWait=3000
--注意-- 配置信息中的ip地址端口号,用户名,密码要和你mysql安装服务器的ip和用户名密码匹配
3.编写代码测试:
我这里druid测试的话是执行一条查询语句,你也可以向上面一样测试下连接对象,获取超过了最大连接次数,然后看看有没有重复的对象
public class DruidTest {public static void main(String[] args) throws Exception{//1.通过连接池工具类获取一个数据库连接Connection con = DataSourceUtils.getConnection();//通过连接对象获取预编译语句对象String sql = "SELECT * FROM student";PreparedStatement pst = con.prepareStatement(sql);//2.执行sql语句,接收结果集ResultSet rs = pst.executeQuery();//3.处理结果集while(rs.next()) {System.out.println(rs.getInt("sid") + "\t" + rs.getString("name") + "\t" + rs.getInt("age") + "\t" + rs.getDate("birthday"));}//4.释放资源DataSourceUtils.close(con,pst,rs);}
}
** 执行结果**
JDBC连接池C3P0,druid相关推荐
- JDBC连接池c3p0连接异常和日志处理
1.c3p0连接数据库由于时区没限制报出的错误 代码: package C3P0;import com.mchange.v2.c3p0.ComboPooledDataSource; import co ...
- c3p0和jdbctemplate配置oracle集群rac,C3P0连接池、DRUID连接池和JdbcTemplate
目录 一.C3P0连接池 1.C3P0连接池简介 2.常用的配置参数 3.C3P0连接池基本使用 (1)C3P0配置文件 (2)API介绍 4.使用步骤 二.DRUID连接池 1. DRUID简介 2 ...
- C3P0连接池、DRUID连接池和JdbcTemplate
目录 一.C3P0连接池 1.C3P0连接池简介 2.常用的配置参数 3.C3P0连接池基本使用 (1)C3P0配置文件 (2)API介绍 4.使用步骤 二.DRUID连接池 1. DRUID简介 2 ...
- 数据层优化-jdbc连接池简述、druid简介
终于回到既定轨道上了,这一篇讲讲数据库连接池的相关知识,线程池以后有机会再结合项目单独写篇文章(自己给自己挖坑,不知道什么时候能填上),从这一篇文章开始到本阶段结束的文章都会围绕数据库和dao层的优化 ...
- JAVA WEB DAY 11_ JDBC 连接池
文章目录 JDBC & 连接池 目标 01_ JDBC 概述-[★★] 02_ JDBC 核心 API 概述-[★★] 03_ JDBC 之注册驱动-[★★★] 04_ JDBC 之获取连接对 ...
- HikariCP:一个叫光的JDBC连接池
简介 天不生我李淳罡,剑道万古如长夜. Hikari [hi·ka·'lē] 是日语"光"的意思.HikariCP的卖点是快.简洁.可靠,整体非常轻量,只有130Kb左右. Hik ...
- 连接池及Druid(德鲁伊) 数据库连接池
连接池及Druid(德鲁伊) 数据库连接池 一.数据库连接池 数据库连接池负责分配.管理和释放数据库连接,它允许应用程序重复使用一个现有的数据库连接,而不是再重新建立一个:释放空闲时间超过最大空闲时间 ...
- 德鲁伊连接池(druid)
文章目录 一.连接池 1.什么是连接池 2.为什么要用连接池 二.德鲁伊连接池(druid) 1.介绍 2.代码实操 一.连接池 1.什么是连接池 简单来说就是一组连接组成的一个池子(集合),称为连接 ...
- C3PO连接池与Druid连接池的使用
C3PO 1.导入jar包:c3p0-0.9.5.2.jar 和mchange-commons-java-0.2.12.jar 2.导入配置文件到 src 目录下: <c3p0-config&g ...
最新文章
- mod php是什么意思,mod_php模式原理探析
- 在 Mac 安装Docker
- python 批量读取文件夹的动漫美女图并显示
- slf4j+log4j2的整合配置
- CCF NOI1144 众数
- 前端学习(1875)vue之电商管理系统电商系统之vue代码提交到码云
- origin三元相图_扩增子图表解读7三元图:三组差异数量和关系
- php怎样创建csv文件,如何使用PHP创建CSV文件?(代码示例)
- 关于django内置的ModelForm小记
- JavaScript的call,apply和bind方法之间的区别
- 看透这个世界--数据封装与解封装过程
- LINUX系统使用锐捷客户端认证校园网(华中科技大学)
- Powerbuilder webform,webservices 倍力文档在线查看
- 免费的pdf编辑软件
- 运算放大器(OPA)超详细参数讲解-运放---以及8个型号的运算放大器分析对比
- 记一个windows预览体验计划0x800bfa07错误问题
- 数据库的横向和纵向分表
- ST7701芯片820*320屏幕移植stemwin
- 叶子结点和分支节点_结点数和叶子结点数有什么区别
- 湘鄂情资源独具 大数据转型可期