dbutils基本使用

dbutils的查询,主要用到的是query方法,增加,修改和删除都是update方法,update方法就不讲了

只要创建ResultSetHandler接口不同的实现类对象就可以得到想要的查询结果,该接口的实现类有

接下来讲解一些经常用到的:

下面的代码都是要抛出异常的,为了看起来简洁,我在这里把异常去掉了

ArrayHandler类:把结果集的‘第一行‘记录封装成数组,
  测试代码:

QueryRunner qr = new QueryRunner(dataSource);
    String sql = "select * from user";
    Object[] objArr = qr.query(sql, new ArrayHandler());
}

ArrayListHandler类:把结果集的每一行封装到一个数组中,然后把这些数组放到一个集合中返回
  测试代码:

QueryRunner qr = new QueryRunner(dataSource);
    String sql = "select * from user";
    List<Object[]> list = qr.query(sql, new ArrayListHandler());
}

BeanHandler类:把结果集的‘第一行‘记录作为一个javaBean对象返回(前提:结果集的字段名(可以用取别名) 和 javaBean的属性名保持一致)
  测试代码:

QueryRunner qr = new QueryRunner(dataSource);
String sql = "select * from user";
User user = qr.query(sql, new BeanHandler<User>(User.class));

BeanListHandler类:把结果集的每一行封装成一个javaBean对象,然后把这些对象放入到一个List集合中返回
  测试代码:

QueryRunner qr = new QueryRunner();
String sql = "select * from user";
List<User> userList = qr.query(conn, sql, new BeanListHandler<User>(User.class));

ScalarHandler类:返回‘结果集‘中第一行的某个值, 具体视构造方法的参数而定, 返回值类型视表中字段的类型而定
有3个构造方法, 用于聚合查询比较好
new ScalarHandler(); 返回结果集中第一行第一列的值
new ScalarHandler(int columnIndex); 返回结果集中第一行第columnIndex列的值(列从1开始计算)
new ScalarHandler(String columnName); 返回结果集中第一行名字为columnName的值
  测试代码:

QueryRunner qr = new QueryRunner();
String sql = "select id, username, hobby as hob from user";

Integer obj1 = qr.query(conn, sql, new ScalarHandler<Integer>()); //结果集中第一行第一列的值
String obj2 = qr.query(conn, sql, new ScalarHandler<String>(2)); //结果集中第一行第2列的值
String obj3 = qr.query(conn, sql, new ScalarHandler<String>("hob")) //结果集中第一行名字为hob

ColumnListHandler类:将结果集中某一列的数据存放到List中, 与上面ScalarHandler类似的有3个构造方法
  测试代码:

QueryRunner qr = new QueryRunner();
String sql = "select * from user";

// List<Integer> idList = qr.query(conn, sql, new ColumnListHandler<Integer>());
// List<String> idList = qr.query(conn, sql, new ColumnListHandler<String>("hobby"));
List<String> list = qr.query(conn, sql, new ColumnListHandler<String>(4));

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

QueryRunner qr = new QueryRunner();
String sql = "select * from user";
Map<String, Object> map = qr.query(conn, sql, new MapHandler());

MapListHandler:将结果集中的每一行数据都封装到一个Map里,然后再存放到List
  测试代码:

QueryRunner qr = new QueryRunner();
String sql = "select * from user";
List<Map<String, Object>> listMap = qr.query(conn, sql, new MapListHandler());

我这里都是举例的不带参数的,如果有参数,在sql中参数用?表示,然后使用带参数的query方法按顺序依次把参数传入即可

有关连接数据库的,请参考我另一篇随笔:c3p0连接数据库的3种方式

时间: 2024-11-06 02:35:00

dbutils基本使用的相关文章

java数据访问(2):DBUtils

导入包 <dependency> <groupId>commons-dbutils</groupId> <artifactId>commons-dbutils</artifactId> <version>1.5</version> </dependency> <!-- 导入Mysql数据库链接jar包 --> <dependency> <groupId>mysql</g

DbUtils常用API的使用 方便以后查阅

1 package com.lizhou.Test; 2 3 import java.sql.SQLException; 4 import java.util.List; 5 import java.util.Map; 6 import java.util.Map.Entry; 7 import java.util.Set; 8 9 import javax.sql.DataSource; 10 11 import org.apache.commons.dbutils.QueryRunner; 

DBUtils框架

主要知识点: 一.多表关联操作(DBUtils框架) 1.一对多关系 *** 2.多对多关系 *** 3.一对一关系 二.分页 三.监听器组件(web三大组件之一) 四.踢人综合示例(监听器实现) 一.分页核心类总结: 1.分页必要性 select * from account; 分页的结果就是要让指定的记录加载到内存 1.人的习惯 2.内存的限度(核心问题) 3.屏幕的限度 2.如何做分页? 1.数据库层面的考虑 select * from account limit startIndex,s

Apache的DBUtils框架学习

commons-dbutils简介 commons-dbutils是Apache组织提供的一个开源JDBC工具类库,它是对JDBC的简单封装,学习成本极低,并且使用dbutils能极大简化jdbc编码的工作量,同时也不会影响程序的性能.因此dbutils成为很多不喜欢hibernate的公司的首选. commons-dbutils API介绍: org.apache.commons.dbutils.QueryRunner QueryRunner中有update()和query()方法 org.a

Apache—DBUtils框架简介

转载自:http://blog.csdn.net/fengdongkun/article/details/8236216 Apache—DBUtils框架简介.DbUtils类.QueryRunner类 .ResultSetHandler接口 commons-dbutils 是 Apache 组织提供的一个开源 JDBC工具类库,它是对JDBC的简单封装,学习成本极低,并且使用dbutils能极大简化jdbc编码的工作量,同时也不会影响程序的性能.因此dbutils成为很多不喜欢hibernat

javaweb学习总结(四十一)——Apache的DBUtils框架学习

一.commons-dbutils简介 commons-dbutils 是 Apache 组织提供的一个开源 JDBC工具类库,它是对JDBC的简单封装,学习成本极低,并且使用dbutils能极大简化jdbc编码的工作量,同时也不会影响程序的性能.因此dbutils成为很多不喜欢hibernate的公司的首选. commons-dbutilsAPI介绍: org.apache.commons.dbutils.QueryRunner org.apache.commons.dbutils.Resul

开源JDBC工具类DbUtils

本篇将会详细地介绍Apache公司的JDBC帮助工具类DbUtils以及如何使用.在上一篇中我们已经通过将以前对dao层使用JDBC操作数据库的冗余代码进行了简易封装形成自己的简单工具类JdbcUtils,而在这过程中很多都是借鉴和参考了DbUtils的代码,因此通过上一篇的学习,会让我们在对DbUtils进行更快速简单的认识. 俗话说学习一个开源的工具最好的方法就是看其官方文档,是的,在Apache官网中对DbUtils进行了详细的介绍:http://commons.apache.org/pr

Dbutils数据库增删改查

1 package com.example.day5_xutildemo; 2 3 import java.util.ArrayList; 4 import java.util.List; 5 6 import com.baidu.vo.Car; 7 import com.lidroid.xutils.DbUtils; 8 import com.lidroid.xutils.db.sqlite.Selector; 9 import com.lidroid.xutils.exception.DbE

开源工具DbUtils的使用(数据库的增删改查)

一.DbUtils简介: DBUtils是apache下的一个小巧的JDBC轻量级封装的工具包,其最核心的特性是结果集的封装,可以直接将查询出来的结果集封装成JavaBean,这就为我们做了最枯燥乏味.最容易出错的一大部分工作. 下载地址:http://commons.apache.org/proper/commons-dbutils/download_dbutils.cgi 下载上图中的红框部分,然后解压.解压之后的文件如下 : 上图中红框部分的文件就是我们所需要的内容. 二.核心方法: Db

DBUtils工具

DBUtils工具 简介 是Apache旗下的产品.是对jdbc的简单封装.提供出通用的jdbc操作方法.简化开发者使用jdbc的成本. 常用的API说明 |- QueryRunner类: 主要进行jdbc的增删改查操作. |-update(): 用于更新 |-query(): 用于查询 |- ResultSetHandler接口: 主要用于在查询操作中,封装结果集.ResultSet -> 对象 |-ArrayHandler类:把结果集的第一行记录封装成数组 |-ArrayListHandle