数据库连接池

什么是数据库连接池:

  • 将多个连接对象放在一个类似于list的集合中,做到需要用到连接的时候就去池子中获取Connection连接对象,不用就放回池子中,不用频繁的获取连接池,关闭连接池.而是用时去池子中拿,不用就还回去

连接池的作用:

  • 避免重复创建链接, 提升程序的执行效率

C3P0连接池

  1. 导包

    c3p0-0.9.5.2.jar
    mchange-commons-java-0.2.12.jar
    https://mvnrepository.com,可以在maven网站去下载

  2. 配置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和用户名密码匹配
  1. 编写代码测试连接池以及连接数量
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连接池:

  1. 导包

    去maven网站搜索druid下载复制在lib目录下导入即可

  2. 配置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相关推荐

  1. JDBC连接池c3p0连接异常和日志处理

    1.c3p0连接数据库由于时区没限制报出的错误 代码: package C3P0;import com.mchange.v2.c3p0.ComboPooledDataSource; import co ...

  2. c3p0和jdbctemplate配置oracle集群rac,C3P0连接池、DRUID连接池和JdbcTemplate

    目录 一.C3P0连接池 1.C3P0连接池简介 2.常用的配置参数 3.C3P0连接池基本使用 (1)C3P0配置文件 (2)API介绍 4.使用步骤 二.DRUID连接池 1. DRUID简介 2 ...

  3. C3P0连接池、DRUID连接池和JdbcTemplate

    目录 一.C3P0连接池 1.C3P0连接池简介 2.常用的配置参数 3.C3P0连接池基本使用 (1)C3P0配置文件 (2)API介绍 4.使用步骤 二.DRUID连接池 1. DRUID简介 2 ...

  4. 数据层优化-jdbc连接池简述、druid简介

    终于回到既定轨道上了,这一篇讲讲数据库连接池的相关知识,线程池以后有机会再结合项目单独写篇文章(自己给自己挖坑,不知道什么时候能填上),从这一篇文章开始到本阶段结束的文章都会围绕数据库和dao层的优化 ...

  5. JAVA WEB DAY 11_ JDBC 连接池

    文章目录 JDBC & 连接池 目标 01_ JDBC 概述-[★★] 02_ JDBC 核心 API 概述-[★★] 03_ JDBC 之注册驱动-[★★★] 04_ JDBC 之获取连接对 ...

  6. HikariCP:一个叫光的JDBC连接池

    简介 天不生我李淳罡,剑道万古如长夜. Hikari [hi·ka·'lē] 是日语"光"的意思.HikariCP的卖点是快.简洁.可靠,整体非常轻量,只有130Kb左右. Hik ...

  7. 连接池及Druid(德鲁伊) 数据库连接池

    连接池及Druid(德鲁伊) 数据库连接池 一.数据库连接池 数据库连接池负责分配.管理和释放数据库连接,它允许应用程序重复使用一个现有的数据库连接,而不是再重新建立一个:释放空闲时间超过最大空闲时间 ...

  8. 德鲁伊连接池(druid)

    文章目录 一.连接池 1.什么是连接池 2.为什么要用连接池 二.德鲁伊连接池(druid) 1.介绍 2.代码实操 一.连接池 1.什么是连接池 简单来说就是一组连接组成的一个池子(集合),称为连接 ...

  9. C3PO连接池与Druid连接池的使用

    C3PO 1.导入jar包:c3p0-0.9.5.2.jar 和mchange-commons-java-0.2.12.jar 2.导入配置文件到 src 目录下: <c3p0-config&g ...

最新文章

  1. mod php是什么意思,mod_php模式原理探析
  2. 在 Mac 安装Docker
  3. python 批量读取文件夹的动漫美女图并显示
  4. slf4j+log4j2的整合配置
  5. CCF NOI1144 众数
  6. 前端学习(1875)vue之电商管理系统电商系统之vue代码提交到码云
  7. origin三元相图_扩增子图表解读7三元图:三组差异数量和关系
  8. php怎样创建csv文件,如何使用PHP创建CSV文件?(代码示例)
  9. 关于django内置的ModelForm小记
  10. JavaScript的call,apply和bind方法之间的区别
  11. 看透这个世界--数据封装与解封装过程
  12. LINUX系统使用锐捷客户端认证校园网(华中科技大学)
  13. Powerbuilder webform,webservices 倍力文档在线查看
  14. 免费的pdf编辑软件
  15. 运算放大器(OPA)超详细参数讲解-运放---以及8个型号的运算放大器分析对比
  16. 记一个windows预览体验计划0x800bfa07错误问题
  17. 数据库的横向和纵向分表
  18. ST7701芯片820*320屏幕移植stemwin
  19. 叶子结点和分支节点_结点数和叶子结点数有什么区别
  20. 湘鄂情资源独具 大数据转型可期

热门文章

  1. iTunes备份注意
  2. asp.net运行机制
  3. 修改了一下voddown.py
  4. android制作闪动的红心
  5. Sql Server 邮件日志 操作
  6. 没有测量,就没有管理
  7. Windows服务程序的调试
  8. oracle常用的字符和字符串处理类函数
  9. 让Python中类的属性具有惰性求值的能力
  10. 加快推进智慧城市建设 促进城乡共发展共繁荣