DbUtils 是一个jdbc的工具,使用的范围内非常广,主要是为了简化jdbc的代码。 核心类:QueryRunner; ResultSetHandler(是一个接口,主要是完成ORM映射,把结果街转化成 我们需要的java对象) 核心方法: * update();用来执行DDL(DDL:create alert,drop;); * query();用来执行DML(DML:insert update delete;); * batch(); 用来执行批处理; 调用本方法之前,需要先创建对象,代码如下: QueryRunner qr = new QueryRunner(JDBCUtils.getDataSource()); //当使用的是无参的构造器时,可以不提供连接池对象,但是在接下来的调用方法是,必须为方法提供Connection 对象。 对于结果集的处理有以下几个结果集处理器:*BenaHandler //把单行结果集的数据封装成javaBean对象,返回值是ResultSetHandler ResultSetHandler <javaBean类型> rsh = new BeanHandler<javaBean类型>(javaBean.class); 本方法多用于在 处理把单行结果集封装成JavaBean对象。(对象时通过反射完成创建的)
*BeanListHandler
List<javaBean类型> list = <List<javaBean类型>> new BeanListHandler<javaBean类型>(javaBean.class);
本方法多用于把多行结果集封装成对象,并且把对象添加到集合中,新版本中可能不需要进行类型的转换,
的到集合可以通过foreach循环来进行遍历。
*MapHandler
Map <String,Object> map = new MapHandler();
本方法是用来吧单行结果集封装到一个Map中其中map的键是表中的列名称,值对应表的列值。
*MapListHandler
List<Map<String,Object>> listmap = new MapListHandler();
本方法是用来多行结果集的处理,把每行的结果封装成一个map,最后把所有的,安排都装刀片一个集合中
返回值是一个集合,但是集合中存放的是map
*ColumnHandler
List nameList = new ColumnHandler();
本方法是用来出来单列,单行 或者多行的数据
*ScalarHandler
本方法是用于处理单行单列的数据,多用于聚合函数的查询,但是以一个点需要注意,就是当聚合函数是涉及到
数字类型的时候,一定要注意返回值类型的转换。有的人会选用Integer,long等类型,这些严格来说都是不合法
的,例如,long类型最大只能容纳20的阶乘,21的阶乘就会包异常,所以我们要选用Number(这个是所有数据类型)
的父类,并且对外提供的有Number.intValue(),和Number.LongValue(),等方法。
具体的代码如下:
import java.sql.SQLException;
import java.util.List;
import java.util.Map;
import org.apache.commons.dbutils.QueryRunner;
import org.apache.commons.dbutils.ResultSetHandler;
import org.apache.commons.dbutils.handlers.BeanHandler;
import org.apache.commons.dbutils.handlers.BeanListHandler;
import org.apache.commons.dbutils.handlers.ColumnListHandler;
import org.apache.commons.dbutils.handlers.MapHandler;
import org.apache.commons.dbutils.handlers.MapListHandler;
import org.apache.commons.dbutils.handlers.ScalarHandler;