Javaweb学习笔记8—DBUtils工具包
今天来讲javaweb的第8阶段学习。
DBUtils技术,DBUtils是我们操作数据库很常用的功能,虽然后期使用都是它的封装结果,但是也需要掌握。
老规矩,首先先用一张思维导图来展现今天的博客内容。
ps:我的思维是用的xMind画的,如果你对我的思维导图感兴趣并且想看到你们跟详细的备注信息,请点击下载
另外:如果图看不清的话请右击---在新窗口中打开会清楚很多

一* 概述:
1* 定义:
用于封装操作数据库的增删改查.
2* 特点:
A* 对于数据表的读操作,他可以把结果转换成List、Array、Set等java集合,便于程序员操作.
B* 对于数据表的写操作,也变得很简单(只需写sql语句).
C* 可以使用数据源,使用JNDI,数据库连接池等技术来优化性能.
二* 常用类:
1* QueryRunner类:
1.1* 构造函数:
* QueryRunner():默认无参构造.
* QueryRunner(DataSource ds):传递连接池的构造.
1.2* 常用方法:
* query()方法:用于执行查询操作.
* query(Connection conn, String sql, ResultSetHandler<T> rsh, Object... params)
1.3* query(String sql, ResultSetHandler<T> rsh, Object... params)
* update()方法:用于执行增删改操作.
* update(Connection conn, String sql, Object... params)
* update(String sql, Object... params)
2* ResultSetHandler接口:
2.1* handle(ResultSet rs)方法:
用于将ResultSet结果集类型进行转换.
三 * 两种方式管理事务:
1* 手动管理事务:
* QueryRunner()
* query(Connection conn, String sql, ResultSetHandler<T> rsh, Object... params)
* update(Connection conn, String sql, Object... params)
2* 工具管理事务:
* QueryRunner(DataSource ds)
* query(String sql, ResultSetHandler<T> rsh, Object... params)
* update(String sql, Object... params)
四* ResultSethandler:
通过上述查询语句可以发现,每次去实现ResultSetHandler的方法非常麻烦。其实ResultSetHandler接口提供了九个实现类供使用,分别如下:
1* ArrayHandler:把结果集中的第一行数据转成对象数组.

2 * ArrayListHandler:把结果集中的每一行数据都转成一个对象数组,再存放到List中.

3* BeanHandler:将结果集中的第一行数据封装到一个对应的JavaBean实例中.

4* BeanListHandler:将结果集中的每一行数据都封装到一个对应的JavaBean实例中,存放到List里.

5* MapHandler:将结果集中的第一行数据封装到一个Map里,key是列名,value就是对应的值.

6* MapListHandler:将结果集中的每一行数据都封装到一个Map里,然后再存放到List.

7* ColumnListHandler:将结果集中某一列的数据存放到List中.

8* KeyedHandler:将结果集中的每一行数据都封装到一个Map里,再把这些map再存到一个map里,其key为指定的列.

9* ScalarHandler:进行单值查询.
Javaweb学习笔记8—DBUtils工具包的更多相关文章
- JavaWeb学习笔记总结 目录篇
JavaWeb学习笔记一: XML解析 JavaWeb学习笔记二 Http协议和Tomcat服务器 JavaWeb学习笔记三 Servlet JavaWeb学习笔记四 request&resp ...
- javaweb学习笔记整理补课
javaweb学习笔记整理补课 * JavaWeb: * 使用Java语言开发基于互联网的项目 * 软件架构: 1. C/S: Client/Server 客户端/服务器端 * 在用户本地有一个客户端 ...
- 【JAVAWEB学习笔记】06_jQuery基础
接05的学习笔记. 四.使用JQ完成省市二级联动 1.需求分析 使用jquery完成省市二级联动 2.技术分析 2.1数组的遍历操作 方式一: $(function(){ // 全选/ 全不选 $(& ...
- javaweb学习笔记(二)
一.javaweb学习是所需要的细节 1.Cookie的注意点 ① Cookie一旦创建,它的名称就不能更改,Cookie的值可以为任意值,创建后允许被修改. ② 关于Cookie中的setMaxAg ...
- Javaweb学习笔记(一)
一.javaweb学习是所需要的细节 1.发送响应头相关的方法 1).addHeader()与setHeader()都是设置HTTP协议的响应头字段,区别是addHeader()方法可以增加同名的响应 ...
- JavaWeb学习笔记(十八)—— DBUtils的使用
一.DBUtils概述 1.1 什么是DBUtils commons-dbutils 是 Apache 组织提供的一个开源 JDBC工具类库,它是对JDBC的简单封装,学习成本极低,并且使用dbuti ...
- 【JAVAWEB学习笔记】10_JDBC连接池&DBUtils
使用连接池改造JDBC的工具类: 1.1.1 需求: 传统JDBC的操作,对连接的对象销毁不是特别好.每次创建和销毁连接都是需要花费时间.可以使用连接池优化的程序. * 在程序开始的 ...
- JDBC学习笔记(9)——DBUtils的使用
使用DBUtils提供的功能需要使用commons-dbutils-1.6.jar这个JAR包,在Apache官网可以下载到 使用DBUtils进行更新操 测试QueryRunner类的update方 ...
- JavaWeb学习笔记之Servlet(一)
1. 引子: 当我们开始进入JavaWeb开发的学习时,我们就必须要和Servlet和HTTP这两个词进行打交道了,尤其是Servlet.即使到了后面使用JSP (我们知道JSP其本身就是一个Serv ...
随机推荐
- POJ - 2417 Discrete Logging(Baby-Step Giant-Step)
d. 式子B^L=N(mod P),给出B.N.P,求最小的L. s.下面解法是设的im-j,而不是im+j. 设im+j的话,貌似要求逆元什么鬼 c. /* POJ 2417,3243 baby s ...
- SideBar---fixed定位
<style> /*外层fixed*/ body{ width:2000px; height:2000px; background:#000; } .wrap { position: ...
- py-day8-socket网络编程
本节内容 Socket介绍 Socket参数介绍 基本Socket实例 Socket实现多连接处理 通过Socket实现简单SSH 通过Socket实现文件传送 作业:开发一个支持多用户在线的FTP程 ...
- 玩下GourdScan
GourdScan是一个分布式SQL漏洞扫描器,采用Python+PHP开发,后端采用SQLMAP.通过浏览器代理方式获取请求进行漏洞检测. win10 准备: phpstudy python2.7 ...
- UVaLive 6950 && Gym 100299K Digraphs (DFS找环或者是找最长链)
题意:有n个只包含两个字母的字符串, 要求构造一个m*m的字母矩阵, 使得矩阵的每行每列都不包含所给的字符串, m要尽量大, 如果大于20的话构造20*20的矩阵就行了. 析:开始吧,并没有读对题意, ...
- python 基本类型的创建方法
1.int class int(object) | int(x=0) -> integer | int(x, base=10) -> integer | | Convert a numbe ...
- bzoj 1874: [BeiJing2009 WinterCamp]取石子游戏【博弈论】
先预处理出来sg值,然后先手必败状态就是sg[a[i]]的xor和为0(nim) 如果xor和不为0,那么一定有办法通过一步让xor和为0,具体就是选一个最大的sg[a[i]],把它去成其他sg值的x ...
- IDEA设置取消自动显示参数提示
IDEA设置取消自动显示参数提示 最近在使用IDEA的过程中,发现方法中一直显示形参名的提示,无法选中,也无法删除,基于不同人的使用习惯不同,有的人不喜欢这种提示,我也在网上寻找各种解决方案,由于搜索 ...
- 屏蔽QQ黄钻官方团队送礼物的方法
按照在网上查到的方法: 登录手机QQ \(\longrightarrow\) 好友动态 \(\longrightarrow\) 个人主页 \(\longrightarrow\) 右上角三道杠 \(\l ...
- 第十一篇 .NET高级技术之内置泛型委托
Func.Action 一.如果不是声明为泛型委托 委托的类型名称不能重载,也就是不能名字相同类型参数不同 二..Net中内置两个泛型委托Func.Action(在“对象浏览器”的mscorlib的S ...