一、数据库连接池
1、什么是数据库连接池
在JDBC编程中,每次创建和断开Connection对象都会消耗一定的时间和IO资源。这是因为在Java程序与数据库之间建立连接时,数据库端要验证用户名和密码,并且要为这个连接分配资源。
为了避免频繁地创建数据库连接,数据库连接池技术应运而生。数据库连接池负责分配、管理和释放数据库连接,它允许应用程序重复使用现有的数据库连接,而不是重新建立。
数据库连接池在初始化时将创建一定数量的数据库连接放到连接池中,当应用程序访问数据库时并不是直接创建Connection,而生向连接池申请一个Connection。如果连接池中有空闲的Connection,则将返回,否则创建新的Connection。使用完毕后,连接池中有空闲的Connection回收,并交付其他的线程使用,以减少创建和断开数据库连接的次数,提高数据库的访问效率
2、DataSource接口
3、DBCP数据库
(1)commons-dbcp.jar包:DBCP数据源的实现包
(2)commons-pool.jar包:DBCP数据库连接池实现包的依赖
1)通过BasicDataSource类直接创建数据源对象
2)通过读取配置文件创建数据源对象
4、C3P0数据源
C3P0是目前最流行的开源数据库连接池之一,它实现了DataSource数据源接口,支出JDBC2和JDBC3的标准规范,易于扩展并且性能优越,著名的开源框架Hibernate和Spring都支持该数据源。
当使用C3P0数据源时,首先需要创建数据源对象,创建数据源对象可以使用ComboPooledDataSource类,该类有两个构造方法,分别是ComboPooledDataSource()和ComboPooledDataSource(String configName).
(1)通过ComboPooledDataSource()构造方法创建数据源对象
(2)通过读取配置文件创建数据源对象
二、DBUtils工具
1、DBUtils工具介绍
DBUtils工具核心是org.apache.commons.dbutils.QueryRunner类和org.apache.commons.dbutils.ResultSetHandler接口。
2、QueryRunner类
3、ResultSetHandler接口
4、ResultSetHandler实现类
(1)BeanHandler和BeanListHandler
BeanHandler和BeanListHandler实现类是将结果集中的数据封装到对应的JavaBean实例中,这也是实际开发中最常用的结果集处理方法。
(2)ScalarHandler
三、使用DBUtils实现增删改查
1、创建C3p0Utils类
2、创建DBUtilsDao类
使用QueryRunner类中带参的方法,将数据源传给QueryRunner对象,并使用QueryRunner对象创建和关闭了数据库连接。
这样就实现了用DBUtils工具对数据库的基本操作。在查询方法中,用到了BeanHandler和BeanListHandler实现类来处理结果集,查询一条数据用的是能够处理一行数据的BeanHandler类,查询所有数据时用的是能处理所有行数据的BeanListHandler类,不能重复使用,否则会造成程序报错。
3、测试DBUtilsDao 类中的增删改查
(1)增加数据
(2)修改数据
(3)删除数据
(4)查询数据
















数据库连接池与DBUtils工具相关推荐

  1. jdbc mysql分页_JDBC【数据库连接池、DbUtils框架、分页】

    1.数据库连接池 什么是数据库连接池 简单来说:数据库连接池就是提供连接的... 为什么我们要使用数据库连接池 数据库的连接的建立和关闭是非常消耗资源的 频繁地打开.关闭连接造成系统性能低下 编写连接 ...

  2. dbcp连接池配置详解_JDBC第四篇【数据库连接池、DbUtils框架、分页】(修订版)

    前言 只有光头才能变强. 文本已收录至我的GitHub仓库,欢迎Star:https://github.com/ZhongFuCheng3y/3y 1.数据库连接池 什么是数据库连接池 简单来说:数据 ...

  3. JDBC第四篇【数据库连接池、DbUtils框架、分页】(修订版)

    前言 只有光头才能变强. 文本已收录至我的GitHub仓库,欢迎Star:https://github.com/ZhongFuCheng3y/3y 1.数据库连接池 什么是数据库连接池 简单来说:数据 ...

  4. JDBC【数据库连接池、DbUtils框架、分页】

    1.数据库连接池 什么是数据库连接池 简单来说:数据库连接池就是提供连接的... 为什么我们要使用数据库连接池 数据库的连接的建立和关闭是非常消耗资源的 频繁地打开.关闭连接造成系统性能低下 编写连接 ...

  5. JDBC 数据库连接池(JDBCUtils工具类)

    文章目录 前言 一.JDBC作用? 二.获取数据的连接方式 三.Statement/PreStatement执行sql 四.ResultSet结果集 五.JDBC相关API 六.事务 七.批处理 八. ...

  6. 号称全网最快的数据库连接池HikariCP的工具类开发-HikariCPUtils

    Hikari 来自日文,是"光"的意思.作者估计是为了借助这个词来暗示这个CP速度飞快! 这个产品的口号是"快速.简单.可靠". 不再过多介绍了,有兴趣的朋友可 ...

  7. python实现数据库连接池_Python实现Mysql数据库连接池

    Python实现Mysql数据库连接池 python连接Mysql数据库: python编程中可以使用MySQLdb进行数据库的连接及诸如查询/插入/更新等操作,但是每次连接mysql数据库请求时,都 ...

  8. 数据库连接池技术--c3p0

    一丶c3p0所需jar包(maven项目中pom.xml文件中添加如下) <!-- https://mvnrepository.com/artifact/c3p0/c3p0 --> < ...

  9. java连接mysql数据库连接池_java使用原生MySQL实现数据的增删改查以及数据库连接池技术...

    一.工具类及配置文件准备工作 1.1 引入jar包 使用原生MySQL,只需要用到MySQL连接的jar包,maven引用方式如下: mysql mysql-connector-java 5.1.48 ...

最新文章

  1. Linux常用目录说明
  2. 代码迁移之旅(二)- 渐进式迁移方案
  3. 【转】王晟教授:给光纤3室研究生的一封公开信
  4. getLocationOnScreen不起作用原因
  5. Django中使用Pagination的分页范例源码
  6. 鸿蒙历程和路标图,鸿蒙2.0来了?华为开发者大会时间确认:Mate40会不会首发?...
  7. Ubuntu系统下安装MATLAB2014a
  8. 全网最全最细的PLSQL下载、安装、配置、使用指南、问题解答,相关问题已汇总
  9. Laravel压缩图片
  10. swing api 文档
  11. 基于stm32f103c8t6的fft频率计
  12. mongoose populate 填充
  13. 网络电话除了打电话还能用来做什么?
  14. C++病毒——鼠标乱飞
  15. mysql默认编码改为gbk_查看改mysql编码方式让它支持中文(gbk或者utf8)
  16. HDU 1728 逃离迷宫(BFS的优化)
  17. 人工智能之父 艾伦·图灵 —— 我在战争中才华横溢,却在和平中寸步难行
  18. Java实现七牛云文件或图片上传下载
  19. 一文速学-时间序列分析算法之移动平均模型(MA)详解+Python实例代码
  20. chrome桌面提醒功能使用

热门文章

  1. EMQX数据持久化到mysql
  2. 使用正则限制输入框只能输入英文和数字
  3. 用计算机自动写作文,电脑写一篇作文用说明方法
  4. 微信服务器保留几年记录_你以为微信只是个聊天工具?看完这些刷新对微信的认知...
  5. IPVS -三种IP负载均衡技术与八种调度算法
  6. 上皮细胞膜纳米囊泡包裹药物如紫杉醇,喜树碱,阿霉素
  7. CV之FR:基于cv2和dlib库自带frontal_face_detector(人脸征检测器)利用landmarks.dat文件实现人脸检测与人脸标记之《极限男人帮》和《NBA全明星球员》案例应用
  8. Lua程序设计 | 字符串、表、函数与IO
  9. 组态王图素制作_组态王实例教程入门
  10. Ubuntu16.04安装中文出现Transaction failed:Package dependencies cannot be resolve16.04d