java web(总结)common-dbutils.jar的作用以及用法

common-dbutils.jar的作用以及用法
新建 QueryRunner 
update(String sql, object[] params)-->可执行增,删,改
T query(string sql ResultSetHander rsh ,Object... params)-->执行查询
》它会先得到ResultSet,让后调用rsh的handle() 吧rs转换成需要的对象
ResultSetHander接口
*BeanHander--》构造器需要一个Class类型的参数,用来吧结果转换成指定类型的javaBean对象
*BeanListHandler--》构造器也需要一个Class类型,用来把结果集转换成一个javaBean对象
*MapHandler(单行)--》吧一行转换成一个map对象
*MapListHandler(多行)--》》 把一行记录转换成一个map
*ScalarHandler(单行单列)返回一个object类

当然上面方法还有可以用Connection的,以后供事务使用

切记使用它,必须你的bean与数据库各个对象的名字一样

例子如下


/**
	 * BeanListHandler多行结果处理器,每行对应一个stu对象
	 * @throws Exception
	 */
	@Test
	public void fun2() throws Exception{
		 QueryRunner qr=new QueryRunner(JdbcUtils.getDataSource());
		 String sql="select * from stu";
		List<stu> lis= qr.query(sql, new BeanListHandler<stu>(stu.class));
		 System.out.println(lis);
	}
/**
 * MapHandler是单行处理器,把每行转换成一个map对象
 */
	@Test
	public void fun3() throws Exception{
		 QueryRunner qr=new QueryRunner(JdbcUtils.getDataSource());
		 String sql="select * from stu while sid=?";
		 Object[] params={11001};
		Map mm= qr.query(sql, new MapHandler(),params);
		 System.out.println(mm);
	}

/**
	 * MapListHandler是多行行处理器,把每行转换成一个map对象
	 */
	@Test
	public void fun4() throws Exception{
		QueryRunner qr=new QueryRunner(JdbcUtils.getDataSource());
		String sql="select * from stu";
		
		List<Map<String,Object>> lis= qr.query(sql, new MapListHandler());
		System.out.println(lis);
	}


/**
	 * ScalarHandler 单行单列查询
	 * @throws Exception
	 */
	@Test
	public void fun5() throws Exception{
		QueryRunner qr=new QueryRunner(JdbcUtils.getDataSource());
		String sql="select count(*) from stu";
		
		Object lis= qr.query(sql, new ScalarHandler());
		System.out.println(lis);
	}


commons-dbutils包是Apache开源组织提供的用于操作数据库的工具包。简单来讲,这个工具包就是用来更加方便我们操作数据库的,最近工作中使用了一下,感觉确实方便很多,基本告别自己封装JDBC代码对数据库进行增删改查了。代码看着也很简洁。 例如: 增删改查使用的类:QueryRunner类+ResultSetHandler类,使用这俩类就可以解决掉。 QueryRunner类的query()方法:new QueryRunner().query(Connection conn, String sql, ResultSetHandler rsh) query方法后面参数中加一个Connection连接,是在获取不到数据源的情况下,也就是说,QueryRunner的实例化构造函数使用无参的那个,下面我的实现代码就是用的这种方法。 当然还有一种实例化:new QueryRunner(new Datasource()).query(String sql, ResultSetHandler rsh) query方法中的参数 ResultSetHandler 参数中加上ResultSetHandler接口的实现类参数(下面这些实现类),执行完SQL后,返回的数据就是已经封装好的我们想要的结果了。 ArrayHandler :将ResultSet中第一行的数据转化成对象数组 ArrayListHandler将ResultSet中所有的数据转化成List,List中存放的是Object[] BeanHandler :将ResultSet中第一行的数据转化成Bean对象 BeanListHandler :将ResultSet中所有的数据转化成List ColumnListHandler :将ResultSet中某一列的数据存成List KeyedHandler :将ResultSet中存成映射,key为某一列对应为Map,Map中存放的是数据 MapHandler :将ResultSet中第一行的数据存成Map MapListHandler :将ResultSet中所有的数据存成List<Map> ScalarHandler :将ResultSet中一条记录的其中某一列的数据存成Object
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值