java自学之路-----jdbc_框架(二)

2015-02-03 03:52:48 · 作者: · 浏览: 27
anListHandler(User.class)); } catch (Exception e) { throw new RuntimeException(e); } }
结果集处理器(ResultSetHandler实现类){

ArrayHandler:把结果集的第一行数据封装到一个数组内,返回数组对象。——new ArrayHandler();

ArrayListHandler:把结果集的每一行数据都封装到一个数组中,再将每个数组存到list集合内,返回list对象。——new ArrayListHandler();

BeanHandler:将结果集的第一行数据封装到一个bean对象中,需要将bean的字节码对象传入,返回bean对象。——new BeanHandler(User.class);

BeanListHandler:将结果集的每一行数据封装到一个bean对象中,再存放在list集合内,同样需要传入bean的字节码对象,返回list对象。——new BeanListHandler(User.class);

ColumnListHandler:将结果集的某一列的数据存放在list中,需要将列名传入,返回list对象。——new ColumnListHandler("id");

KeyedHandler:将结果集的每一行数据都封装到一个map(key为列名,value为该列的值)中,再将这个map存放在另一个map中(key为传入的指定列名的值,value就是map),返回map对象。——new KeyedHandler("id");

MapHandler:将结果集的第一行数据封装到一个map中,key为列名,value为该列的值,返回map对象。——new MapHandler();

MapListHandler:将结果集的每一行数据都封装到一个map中,再存放在list中,返回list对象。——new MapListHandler();

ScalarHandler:将制定的第一行的某一列(可以传入第几列或者列名)的值存放在一个对象内,返回该对象。——new ScalarHandler(1);

例:

			//查询总记录数
			QueryRunner runner = new QueryRunner(JdbcUtils.getDataSource());
			String sql = "select count(*) from user";
////	1.使用arrayhandler处理器
//			Object result[] = runner.query(sql, new ArrayHandler());
////			取出数据,取出的是Long型的数据,需要进行转型
//			int count = ((Long)result[0]).intValue();
//	2.使用scalarhandler处理器,取出第一列的值,指定了封装到Long对象中,进行转型
			int count = runner.query(sql, new ScalarHandler(1)).intValue();

}

}

}