ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

【无标题】

2022-01-05 16:58:36  阅读:128  来源: 互联网

标签:数据源 数据库 jar commons 无标题 创建 连接


day12
数据库链接池与DBUtil工具
一、数据库连接池
在JDBC编程中,每次创建和断开Connection对象都会消耗一定的时间和IO资源。这是因为Java程序与数据库之间建立连接时,数据库端要验证用户名和密码,并且要为这个连接分配资源,JAVA程序则要把代表连接的 java.sql.Connection对象加载到内存中,所以建立数据连接的开销很大,尤其是在大量的并发访问时。假如某网站一天的访问量是10万,那么该网站的服务器就需要创建,断开连接10万次,频繁地创建,断开数据库连接势必会影响数据库的访问效率,甚至导致数据库的崩溃。
为了避免频繁地创建数据库连接,数据库连接池技术应运而生。数据库连接池负责分配,管理和释放数据库连接,它允许应用程序重复使用现有的数据库连接,而不是重新建立。
二、DataSource接口
为了获取数据库连接对象,JDBC提供了javax.sql.DataSource接口,它负责与数据库建立连接,并定义了返回值为Connection对象的方法,具体如下:
1.Connection getConnection()
2.Connection getConnection(String username,String password)
三、DBCP数据源
DBCP是数据库连接池的简称,是Apache组织下的开源连接池的实现,也是Tomcat服务器使用的连接池组件。单独使用DBCP数据源时,需要在应用程序中导入两个JAR包,具体如下:
1.commons-dbcp.jar包
commons-dbcp.jar包:是DBCP数据源的实现包,包含所有操作数据库连接信息和数据库连接池初始化信息的方法,并实现了DataSource接口的getConnection()方法
2.commons-pool.jar包
commons-pool.jar包:是DBCP数据库连接池实现包的依赖包,为commons-dbcp.jar包中的方法提供了支持。可以这么说,没有该依赖包,commons-dbcp.jar包中的很多方法就没有办法实现

通过BasicDataSource类直接创建数据源对象
在使用BasicDataSource类创建对象时,需要手动给数据源对象设置属性值,然后获取数据库连接对象
(1)在Eclipse 中创建一 个名称为chapter10 的Web项目,在项目chapter10 中导入mysql-connector-java-5.0.8-bin.jar、commons-dbcp-1.4.jar以及commons- pool- 1.6.jar 3个JAR包,并发布到类路径下,然后在项目的src目录下创建包cn.itcast.chapter10.example,并在该包下创建一个example01类,该类采用手动方式获取数据库的连接信息和数据源的初始化信息
在这里插入图片描述
在这里插入图片描述
通过读取匹配置文件创建数据源对象
(1)在chapter10项目的src目录下创建dbcpconfig.properties 文件,该文件用于设置数据库的连接信息和数据源的初始化信息。
(2)在cn.itcast.chapter10.example,并在该包下创建一个example02类,该类中采用了从配置文件中获取数据库的连接信息和数据源的初始化信息的方式
在这里插入图片描述
C3PO数据源
C3PO是目前最流行的开源数据库连接池之一,它实现了DataSource 数据源接口,支持JDBC2和JDBC3的标准规范,易于扩展并且性能优越,著名的开源框架Hibernate和Spring都支持该数据源。在使用C3PO数据源开发时,需要了解C3PO中DataSource接口的实现类ComboPooledDataSource,它是C3P0的核心类,提供了数据源对象的相关方法 。

1.通过ComboPooledDataSource()构造方法创建数据源对象
使用ComboPooledDataSource()构造方法创建数据源对象,需要手动给数据源对象设置属性值,然后获取数据库连接对象,具体步骤如下。
( 1 )在项目chapter10中导入JAR包c3p0- -0.9.1.2.jar, 然后在cn.itcast.chapter 10.example包下创建一个example03类,该类采用C3P0数据源手动代码的方式获取Connection对象。

在这里插入图片描述
在这里插入图片描述
通过读取配置文件创建数据源对象
( 1 )在src根目录下创建一个c3p0-config xml文件,用于设置数据库的连接信息和数据源的初始化信息。在这里插入图片描述
(2)在cn.itcast.chapter10.example包下创建一个Example04类,该类中使用C3P0数据源从配置文件中获取Connection对象。
在这里插入图片描述
DBUtils工具
1.介绍DBUtils工具
DBUtils工具核心是org.apache.commons.dbutils.QueryRunner类和org.apache.commons.dbutils.ResultSetHandler接口
2 .QueryRunner类
QueryRunner类提供了带有一个参数的构造方法,该方法以javax.sql.DataSource作为参数传递到QueryRunner的构造方法中来获取Connection对象。针对不同的数据库操作,QueryRunner类提供了几种常见的方法,具体如下:
(1)query(String sql,ResultSetHandler rsh,Object…params)方法
该方法用于执行查询操作,它可以从提供给构造方法的数据源DataSource或使用的setDataSource()方法中获得连接
(2)update(String sql,object…params)方法
该方法用于执行插入,更新或者删除操作,其中,参数params表示SQL语句中的置换参数
(3)update(String sql)方法
该方法用来执行插入,更新或者删除操作,它不需要置换参数
在chapter10项目的cn.itcast chapter10. example包中创建-一个名为BaseDao的类,该类中编写了一个通用的查询方法
在这里插入图片描述
在cn.itcast.chapter 10.example包下创建实体类User, 使用该类来封装User对象
在这里插入图片描述
在cn.itcast.chapter10.example 包下创建类ResultSetTest1, 该类用于演示BeanHandler类对结果集的处理,在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

标签:数据源,数据库,jar,commons,无标题,创建,连接
来源: https://blog.csdn.net/m0_55793662/article/details/122326583

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有