1、項目引入commons-dbutils-1.4.jar
下載地址:
2、使用例子:
//使用c3p0初始化數據源
QueryRunner runner = new QueryRunner(new ComboPooledDataSource());
//1.ArrayHandler 將查詢結果的第一行轉換爲一個數組對象返回
Object[] objs = runner.query("select * from account where name=?",new ArrayHandler() , "si");
System.out.println(objs[0]);
//2.ArrayHandler 把結果集中的每一行數據都轉成一個對象數組,再存放到List中.
List<Object[]> list = runner.query("select * from account",new ArrayListHandler() );
System.out.println(list.get(1)[1]);
//3.BeanHandler,將查詢結果的第一行轉換爲一個JavaBean對象返回
Account acc = runner.query("select * from account where name=?",new BeanHandler<Account>(Account.class) , "c");
System.out.println(acc);
//4.BeanListHandler:將結果集中的每一行數據都封裝到一個對應的JavaBean實例中,存放到List裏。
List<Account> acclist = runner.query("select * from account",new BeanListHandler<Account>(Account.class) );
System.out.println(acclist);
//5.MapHandler:將結果集中的第一行數據封裝到一個Map裏,key是列名,value就是對應的值。
Map map = runner.query("select * from account",new MapHandler() );
System.out.println(map.get("name").toString());
//6.MapListHandler:將結果集中的每一行數據都封裝到一個Map裏,然後再存放到List
List<Map<String, Object>> maplist = runner.query("select * from account",new MapListHandler() );
System.out.println(maplist);
//7.ColumnListHandler:將結果集中某一列的數據存放到List中。
List<Object> columnList = runner.query("select * from account",new ColumnListHandler(2) );
System.out.println(columnList);
//8.KeyedHandler(name):將結果集中的每一行數據都封裝到一個Map裏(List<Map>),再把這些map再存到一個map裏,其key爲指定的列。
Map<Object, Map<String, Object>> keymap = runner.query("select * from account",new KeyedHandler("id") );
System.out.println(keymap);
//9.ScalarHandler: 單值查詢
//select count(*) from account;
Long count = (Long)runner.query("select count(*) from account",new ScalarHandler(1) );
System.out.println(count);