这几天使用了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());
}
}
}