传智播客---DBUtils框架的使用

今天在传智播客学的东西,明天你就会用得上,明天学到的东西,后天就能用得上,在传智播客学到的东西,你一生都用得上,这是我总结的一段话,我觉得很朴实很真实的一段话。天气一天一天的凉了,今天班主任吩咐我们多穿衣服主要身体,心里好暖和啊,传智播客的老师真好,而且领导也很随和,不管有什么事都会尽量的去帮助你,我觉得在找不到比传智播客更好的培训机构了。

给大家讲一个小框架哦,这是今天学到的

在学DBUtils框架之前有必要知道JDBC元数据API是框架编写的基础,掌握元数据API ,更清楚知道框架是如何实现的
元数据MetaData : 是指数据库中 库、表、列的定义信息 可以通过一下三个对象获取到 库,表,列的参数
1、DataBaseMetaData 数据库元数据
2、ParameterMetaData 参数元数据
3、ResultSetMetaData 结果集元数据

一、DataBaseMetaData 数据库元数据
可以同过Connection.getMetaData()获得DataBaseMetaData对象
1、通过DataBaseMetaData获得数据库连接的基本参数
2、获得数据库、表、列、主键、外键 定义信息
getTables()获得表
getColumns()获得列
getPrimaryKeys()获得主键
二、ParameterMetaData 参数元数据 ---- 获得SQL语句中信息
通过PreparedStatement.getParameterMetaData()获得ParameterMetaData对象
getParameterCount()  获得SQL语句中?数量
String getParameterTypeName(int param)  获得指定?参数类型名称 ------------ 不同数据库会提供不同支持
三、ResultSetMetaData 结果集元数据
通过ResultSet.getMetaData()获得ResultSetMetaData对象
getColumnCount()  返回resultset对象的列数
getColumnName(int column) 获得指定列的名称
getColumnTypeName(int column) 获得指定列的类型
DBUtils 框架 是 Apache的commons 项目一个数据库框架
1、QueryRunner是框架核心类 ,所有数据库操作都是必须通过 QueryRunner 进行的
2、ResultSetHandler 结果集封装接口,完成将ResultSet 结果集 封装为一个Java对象
3、DbUtils 工具类 提供驱动管理、事务管理、释放资源等一系列公共方法
去官网下载DBUtils
将dbutils的jar 复制 WEB-INF/lib
QueryRunner 与 ResultSetHandler 一起使用,完成数据表增删改查
构造器:
QueryRunner() -------- 没有传递连接池给DBUtils框架,框架不能获得数据库连接,接下来每个操作,必须将数据库连接传给框架  (手动管理事务)
QueryRunner(DataSource ds)  ---- 将连接池给DBUtils框架,以后每个操作,都会从连接池中获取一个新的连接  (每条SQL 一个单独的事务)
更新操作 insert update delete
public int update(Connection conn, String sql, Object... params) ---- 手动管理事务,没有将连接池提供框架,传入连接
public int update(String sql, Object... params) ----- 将连接池交给框架,由框架管理事务,不需要传入连接
查询操作 select
public Object query(Connection conn, String sql, ResultSetHandler<T> rsh, Object... params)
public Object query(String sql, ResultSetHandler<T> rsh, Object... params)
1、需要手动管理事务
QueryRunner()
public int update(Connection conn, String sql, Object... params)
query(Connection conn, String sql, ResultSetHandler<T> rsh, Object... params)
2、由框架管理事务 (每条SQL都是一个单独事务)
QueryRunner(DataSource ds)
public int update(String sql, Object... params)
public Object query(String sql, ResultSetHandler<T> rsh, Object... params)
ResultSetHandler 在DBUtils 框架中提供九个默认 实现类,直接使用九个默认实现类,可以完成常规操作,而不需要自定义结果集封装
1) ArrayHandler 将数据表的第一行记录保存Object[] 中
 ArrayListHandler  将数据表的每行记录保存Object[] 中
2) BeanHandler 将数据表的第一行记录 保存JavaBean对象中
 BeanListHandler 将数据表每行记录 保存JavaBean对象中
* 封装javabean属性时,必须保证数据表列名与 javabean属性名一致,否则无法封装
3) MapHandler 将结果的第一行记录保存到一个Map集合,key是列名,value是值 
 MapListHandler 将结果每行记录保存到一个Map集合,key是列名,value是值 
4) ColumnListHandler 查询结果集中指定一列数据
5) KeyedHandler(name) 结果集每行数据封装map,再将map存入另一个map 作为value,指定一列作为key
6) ScalarHandler 进行单值查询 select count(*) from account;
重点与常用的是:BeanHandler 和 BeanListHandler 、ScalarHandler 、ColumnListHandler

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值