Javaweb基础入门(十七)之连接池和DBUtils工具类

一.数据库连接池

1.概念

对于一个简单的数据库应用 由于对数据库的访问不是很频繁 这时可以简单地在需要访问数据库时 创建一个连接 用完后 就关闭 但是对于一个复杂的数据库应用 情况就不同了 频繁的建立/关闭连接 会极大的减低系统的性能 开销过大 浪费资源 如果能让一个连接复用 就能解决这个问题 出现了连接池技术
jdbc每次都要连接 关闭 但是连接池不用 申请一个连接 使用完 不释放
会回到连接池中 等待下一次连接

2.常用配置:

1.DBCP apache推出的 Database Connection Pool

使用步骤:
1.导入jar包 dbcp 和 pool
2.创建属性配置文件 dbconfig.properties
3.javax.sql.DataSource 接口

2.C3P0 是一个开源的JDBC连接池

使用步骤:
1.导入jar包 c3p0
2.编写配置文件 c3p0-config.xml 放在src根目录下
3.javax.sql.DataSource 接口

<default-config>
<property name="driverClass">com.mysql.jdbc.Driver</property>
<property name="jdbcUrl">jdbc:mysql://localhost:3306/dbbj?useEncoding=true&amp;characterEncoding=UTF-8</property>
<property name="user">root</property>
<property name="password">111111</property>
<property name="checkoutTimeout">30000</property>//如果连接池已经满了 等待 设置等待时间 单位是毫秒 默认是0
<property name="initialPoolSize">10</property>//核心池大小 初始化连接在minPoolSize 和 maxPoolSize之间
<property name="maxIdleTime">30</property>//最大空闲时间
<property name="maxPoolSize">100</property>//最大连接
<property name="minPoolSize">10</property>//最小连接
</default-config> 

二.DBUtils

1.概念

是java编程中的数据库操作实用工具 封装了jdbc的操作 简化了jdbc的书写 小巧简单实用

2.作用

1.对于数据表的读取操作 它可以把结果集转成 List Array Set等集合中
2.对于数据表的写操作 变的更简单(只需要sql 语句就可以了)
3.可以使用数据库连接池技术 来优化性能 重用已经构建好的数据库连接对象

三.DBUtils的三个核心对象:

QueryRunner类

1.简介

提供了对sql语句操作的API QueryRunner(DataSource ds)将连接池 给
DBUtils框架使用 以后 每一个操作都会从连接池中获取一个新的连接 每条sql**语句都是一个单独的事务

2.QueryRunner方法:

update() 用于执行 insert update delete语句
query() 用于执行 select
batch() 用于批处理 可以执行多条语

3. QueryRunner之batch() 方法

是批量处理 所需要的参数包括一个二维数组
Object[][] params= new Object[5][]; 高维 的数 5 决定是执行sql语句的次数低维数组的元素 就是给 sql语句 ? 赋值的

ResultSetHandler 接口

用于定义select操作后 怎样封装结果集 返回内容

1.ResultSetHandler接口下的所有结果处理器:

1.BeanHandler 把每条记录封装成对象 适合取一条记录
2.BeanListHandler 把每条记录封装成对象 将对象存储到List集合中
3.ArrayHandler 适合取一条记录 把该记录的每一列值存储到一个数组中 Object[]
4.ArrayListHandler 适合取多条记录 把该记录的每一列值存储到一个数组中 Object[]
然后把数组封装到集合中
5.ColumnListHandler 获取某一列的数据 封装到List集合中
6.KeyedHandler 取多条记录
每条记录封装到Map中 再把Map封装到另一个Map中 key 为指定的字段值
7.MapHandler 适合取一条记录 把当前记录的列名 和 列值 放到一个Map中
8.MapListHandler 适合取多条记录 把当前记录封装到Map中 再把Map封装到List中
9.ScalarHandler 适合取单行单列数据

DBUtils 类

它是一个工具类 定义了关闭资源与事务处理的方法

1.DBUtils快速入门:

1.导包 commons-dbutils-1.4.jar
2.创建 QueryRunner对象
3.使用 QueryRunner中不同的方法 完成sql语句的执行
4.如果是查询 使用ResultSetHandler封装结果集

猜你喜欢

转载自blog.csdn.net/xueer_z/article/details/82463552