Apache下的Commons项目下的DBUtils中的QueryRunner使用的例子

这几天使用了apache下的commons项目下的子项目dbutils,十分的小巧灵活,只用几个小例子。就可以直接上手使用了。。

不多说了直接上代码了。。

@Test
	public void queryRunnerTest() throws SQLException
	{

		Connection connection = DBManager.getConnection();

		QueryRunner queryRunner = new QueryRunner();

		System.out.println("使用Map处理单行记录!=======================================");

		Map<String, Object> map = queryRunner.query(connection, "select * from qt_user where id = 2", new MapHandler(),
				(Object[]) null);

		for (Iterator<Entry<String, Object>> i = map.entrySet().iterator(); i.hasNext();)
		{
			Entry<String, Object> e = i.next();
			System.out.println(e.getKey() + "=" + e.getValue());
		}

		System.out.println("处理多行记录!===================================================");

		List<Map<String, Object>> list = queryRunner.query(connection, "select * from qt_user", new MapListHandler(),
				(Object[]) null);

		for (Map<String, Object> temp : list)
		{
			for (Iterator<Entry<String, Object>> iter = temp.entrySet().iterator(); iter.hasNext();)
			{
				Entry<String, Object> entry = iter.next();

				System.out.println(entry.getKey() + ", " + entry.getValue());
			}

			System.out.println("一行记录解析完成************************************************************");
		}

		System.out.println("使用Bean处理单行记录!");

		User user = queryRunner.query(connection, "select * from qt_user where id=2",
				new BeanHandler<User>(User.class));
		System.out.println("username=" + user.getUsername());
		System.out.println("email=" + user.getEmail());

		System.out.println("使用Array处理单行记录!");

		Object[] array = queryRunner.query(connection, "select * from qt_user where id=2", new ArrayHandler());

		for (int i = 0; i < array.length; i++)
		{
			System.out.println(array[i]);
		}

		System.out.println("使用Array处理多行记录!");

		List<Object[]> arraylist = queryRunner.query(connection, "select * from qt_user ", new ArrayListHandler());

		for (Iterator<Object[]> itr = arraylist.iterator(); itr.hasNext();)
		{
			Object[] a = itr.next();
			System.out.println("--------------");
			for (int i = 0; i < a.length; i++)
			{
				System.out.println(a[i]);

			}
		}

		System.out.println("使用ColumnListHandler处理单行记录,返回其中指定的一列!");

		List<Object> colList = queryRunner.query(connection, "select * from qt_user where id=3",
				new ColumnListHandler("username"));
		for (Iterator<Object> itr = colList.iterator(); itr.hasNext();)
		{
			System.out.println(itr.next());
		}

		System.out.println("使用ScalarHandler处理单行记录,只返回结果集第一行中的指定字段,如未指定字段,则返回第一个字段!");

		Object scalar1 = queryRunner.query(connection, "select * from qt_user", new ScalarHandler("username"));
		System.out.println(scalar1);
		Object scalar2 = queryRunner.query(connection, "select *  from qt_user", new ScalarHandler("addtime"));
		System.out.println(scalar2);

		// 使用自定义的行处理器 // Map中的KEY可按输入顺序输出
		System.out.println("使用Map处理单行记录(使用自定义行处理器)!");

		Map<String, Object> linkedmap = queryRunner.query(connection, "select * from qt_user where id=2",
				new MapHandler(new BasicRowProcessor()), (Object[]) null);

		for (Iterator<Entry<String, Object>> i = linkedmap.entrySet().iterator(); i.hasNext();)
		{
			Entry<String, Object> e = i.next();
			System.out.println(e.getKey() + "=" + e.getValue());
		}

		// 使用自定义的行处理器 // Map中的KEY可按输入顺序输出
		System.out.println("处理多行记录(使用自定义行处理器)!");

		List<Map<String, Object>> listLinedMap = queryRunner.query(connection, "select *from qt_user ",
				new MapListHandler(new BasicRowProcessorEx()), (Object[]) null);

		for (Iterator<Map<String, Object>> li = listLinedMap.iterator(); li.hasNext();)
		{
			System.out.println("--------------");
			Map<String, Object> m = li.next();
			for (Iterator<Entry<String, Object>> mi = m.entrySet().iterator(); mi.hasNext();)
			{
				Entry<String, Object> e = mi.next();
				System.out.println(e.getKey() + "=" + e.getValue());
			}
		}
	}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值