JavaWeb第10章 Day13天 2020080605018

本文详细介绍了数据库连接池的概念,包括DBCP和C3P0两种常用的数据库连接池实现,以及如何通过配置文件创建数据源对象。同时,文章深入探讨了Apache的DBUtils工具,讲解了QueryRunner类和ResultSetHandler接口的应用,特别是BeanHandler和BeanListHandler的使用,以实现对数据库操作的简化和性能提升。
摘要由CSDN通过智能技术生成


数据库连接池与DBUtils工具(△)

一、什么是数据库连接池:

在JDBC编程中,每次创建和断开Connection对象都会消耗一定的时间和IO资源。这是因为在Java程序与数据库之间建立连接时,数据库端要验证用户名和密码,并且要为这个连接分配资源,Java程序则要把代表连接的java.sql.Connection对象等加载到内存中,所以建立数据库连接的开销很大,尤其是在大量的并发访问时。假如某网站一天的访问量是10万,那么,该网站的服务器就需要创建、断开连接10万次,频繁地创建、断开数据库连接势必会影响数据库的访问效率,甚至导致数据库崩溃。
为了避免频繁地建数据库连接,数据库连接池技术应运而生。数据库连接池负责分配、管理和释放数据库连接,它允许应用程序重复使用现有的数据库连接,而不是重新建立。接下来,通过一张图来简单描述应用程序如何通过连接池连接数据库,如下图所示。
在这里插入图片描述
可以看出,数据库连接池在初始化时将创建一定数量的数据库连接放到连接池中,当应用程序访问数据库时并不是直接创建Connection, 而是向连接池“申请”一个Connection。如果连接池中有空闲的Connection,则将其返回,否则创建新的Connection。使用完毕后,连接池会将该Connection回收,并交付其他的线程使用,以减少创建和断开数据库连接的次数,提高数据库的访问效率。

  • DataSource 接口
    为了获取数据库连接对象( Connection), JDBC提供了javax.sql.DataSource 接口,它负责与数据库建立连接,并定义了返回值为Connection对象的方法。

  • DBCP数据源
    DBCP是数据库连接池( DataBase Connection Pool )的简称,是Apache组织下的开源连
    接池实现,也是Tomcat服务器使用的连接池组件。单独使用DBCP数据源时,需要在应用程序
    中导入两个JAR包,具体如下。
    1.commons-dbcp.jar 包
    commons-dbcp.jar包是DBCP数据源的实现包,包含所有操作数据库连接信息和数据库
    连接池初始化信息的方法,并实现了DataSource接口的getConnection()方法。

  1. commons-pool.jar 包
    commons- pool.jar包是DBCP数据库连接池实现包的依赖包,为commons -dbcp.jar包中的方法提供了支持。可以这么说,没有该依赖包,commons- dbep.jar包中的很多方法就没有办法实现。

1.DBCP数据源对象创建的两种方法:

使用BasicDataSoure类创建一个数据源对象

需要手动给数据源对象设置属性值,然后获取数据库连接对象
在Eclipse 中创建一个名称为chapter10 的Web项目,在项目chapter10 中导入mysql-connector-java- 5.0.8-bin.jar、commons-dbcp-1 .4.jar

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值