好记性不如赖笔头……
目录:
1、BeanListHandler:以List集合的形式返回,使用较多;是泛型,这里是指实体bean,也就是实体类
2、BeanHandler:只返回一条数据,并将数据封装到指定的实体中,与上面的BeanListHandler是对应的
3、ArrayHandler:只返回一条数据,将数据以Object[]数组的形式返回
4、ArrayListHandler:返回多条数据,将数据以List
/**
* BeanListHandler:以List<T>集合的形式返回,使用较多
* @创建时间:2017年7月18日11:28:40
*/
@Test
public void testSelect(){
//创建对象,并将数据源导入
QueryRunner qRunner = new QueryRunner(DBUtil.getDataSource());
try {
//执行SQL语句,返回List集合数据
List<Account> accounts = qRunner.query("select * from account",new BeanListHandler<Account>(Account.class));
// 输出数据
for(int i = 0; i < accounts.size();i++){
System.out.println(accounts.get(i));
}
} catch (SQLException e) {
e.printStackTrace();
}
}
执行结果为:
Account [id=1, name=admin, memery=1000.0]
Account [id=2, name=Test, memery=3000.0]
Account [id=4, name=Test1, memery=144.2535]
Account [id=5, name=Test2, memery=288.507]
Account [id=6, name=Test3, memery=432.7605]
Account [id=7, name=Test4, memery=577.014]
Account [id=8, name=Test5, memery=721.2675]
Account [id=9, name=Test6, memery=865.521]
Account [id=10, name=Test7, memery=1009.7745]
Account [id=11, name=Test8, memery=1154.028]
Account [id=12, name=Test9, memery=1298.2815]
Account [id=13, name=Test10, memery=1442.535]
Account [id=14, name=Test11, memery=1586.7885]
Account [id=15, name=Test12, memery=1731.042]
Account [id=16, name=Test13, memery=1875.2955]
Account [id=17, name=Test14, memery=2019.549]
Account [id=18, name=Test15, memery=2163.8025000000002]
Account [id=19, name=Test16, memery=2308.056]
Account [id=20, name=Test17, memery=2452.3095]
Account [id=21, name=Test18, memery=2596.563]
Account [id=22, name=Test19, memery=2740.8165]
Account [id=23, name=Test20, memery=2885.07]
2、BeanHandler:只返回一条数据,并将数据封装到指定的实体中,与上面的BeanListHandler是对应的
/**
* BeanHandler:只返回一条数据,并将数据封装到指定的实体中
* @创建时间:2017年7月18日11:28:40
*/
@Test
public void testSelect1(){
QueryRunner queryRunner = new QueryRunner(DBUtil.getDataSource());
try {
//只返回一条数据,并将数据封装到指定的实体中
Account query = queryRunner.query("select * from account", new BeanHandler<Account>(Account.class));
System.out.println(query);
} catch (SQLException e) {
e.printStackTrace();
}
}
执行结果为:
Account [id=1, name=admin, memery=1000.0]
3、ArrayHandler:只返回一条数据,将数据以Object[]数组的形式返回
/**
* ArrayHandler:只返回一条数据,将数据以Object[]数组的形式返回
* @创建时间:2017年7月18日11:27:37
*/
@Test
public void testSelect2(){
QueryRunner queryRunner = new QueryRunner(DBUtil.getDataSource());
try {
//new ArrayHandler() 返回数组
Object[] query = queryRunner.query("select * from account",new ArrayHandler());
for(Object object:query){
System.out.print(object+" ");
}
} catch (SQLException e) {
e.printStackTrace();
}
}
执行结果为:
1 admin 1000.0
4、ArrayListHandler:返回多条数据,将数据以List
/**
* ArrayListHandler:返回多条数据,将数据以List<Object[]>集合的形式返回,与BeanListHandler有点类似
* @创建时间:2017年7月18日11:34:52
*/
@Test
public void testSelect3(){
QueryRunner queryRunner = new QueryRunner(DBUtil.getDataSource());
try {
//返回多条数据,将数据以List<Object[]>集合的形式返回,与BeanListHandler有点类似
List<Object[]> query = queryRunner.query("select * from account", new ArrayListHandler());
for (Object[] objects : query) {
for (Object object : objects) {
System.out.print(object+" ");
}
System.out.println();
}
} catch (SQLException e) {
e.printStackTrace();
}
}
执行结果为:
1 admin 1000.0
2 Test 3000.0
4 Test1 144.2535
5 Test2 288.507
6 Test3 432.7605
7 Test4 577.014
8 Test5 721.2675
9 Test6 865.521
10 Test7 1009.7745
11 Test8 1154.028
12 Test9 1298.2815
13 Test10 1442.535
14 Test11 1586.7885
15 Test12 1731.042
16 Test13 1875.2955
17 Test14 2019.549
18 Test15 2163.8025000000002
19 Test16 2308.056
20 Test17 2452.3095
21 Test18 2596.563
22 Test19 2740.8165
23 Test20 2885.07
5、MapHandler:返回一条数据,将数据以Map
/**
* MapHandler:返回一条数据,将数据Map<String,Object>集合的形式返回,
* @创建时间:2017年7月18日11:38:00
*/
@Test
public void testSelect4(){
QueryRunner queryRunner = new QueryRunner(DBUtil.getDataSource());
try {
Map<String, Object> query = queryRunner.query("select * from account", new MapHandler());
for (Map.Entry<String, Object> map : query.entrySet()) {
System.out.println(map.getKey()+"----》"+map.getValue());
}
} catch (SQLException e) {
e.printStackTrace();
}
}
执行结果为:
memery----》1000.0
name----》admin
id----》1
6、KeyedHandler:返回多条数据,将数据以Map
/**
* KeyedHandler:返回多条数据,将数据以Map<Object,Map<String,Object>>集合的形式返回,注意:它是无序的
* @创建时间:2017年7月18日12:17:36
*/
@Test
public void testSelect5(){
QueryRunner queryRunner = new QueryRunner(DBUtil.getDataSource());
try {
//返回多条数据,将数据以Map<Object,Map<String,Object>>集合的形式返回,注意,它是无序的
Map<Object, Map<String, Object>> query = queryRunner.query("select * from account", new KeyedHandler(1));
//遍历输出在控制台
for (Map.Entry<Object, Map<String, Object>> map : query.entrySet()) {
for (Map.Entry<String, Object> map1 : map.getValue().entrySet()) {
System.out.print(map1.getKey()+" "+map1.getValue()+" ");
}
System.out.println();
}
} catch (SQLException e) {
e.printStackTrace();
}
}
执行结果为:
memery 1000.0 name admin id 1
memery 3000.0 name Test id 2
memery 144.2535 name Test1 id 4
memery 288.507 name Test2 id 5
memery 432.7605 name Test3 id 6
memery 577.014 name Test4 id 7
memery 721.2675 name Test5 id 8
memery 865.521 name Test6 id 9
memery 1009.7745 name Test7 id 10
memery 1154.028 name Test8 id 11
memery 1298.2815 name Test9 id 12
memery 1442.535 name Test10 id 13
memery 1586.7885 name Test11 id 14
memery 1731.042 name Test12 id 15
memery 1875.2955 name Test13 id 16
memery 2019.549 name Test14 id 17
memery 2163.8025000000002 name Test15 id 18
memery 2308.056 name Test16 id 19
memery 2452.3095 name Test17 id 20
memery 2596.563 name Test18 id 21
memery 2740.8165 name Test19 id 22
memery 2885.07 name Test20 id 23
7、MapListHandler:返回多条数据,将数据以List
/**
* MapListHandler:返回多条数据,将数据以List<Map<String,Object>>集合的形式返回
* @创建时间:2017年7月18日12:22:42
*/
@Test
public void testSelect6(){
QueryRunner queryRunner = new QueryRunner(DBUtil.getDataSource());
try {
//返回多条数据,将数据以List<Map<String,Object>>集合的形式返回
List<Map<String, Object>> query = queryRunner.query("select * from account", new MapListHandler());
//遍历输出在控制台
for (Map<String, Object> map : query) {
for (Map.Entry<String, Object> map1 : map.entrySet()) {
System.out.print(map1.getKey()+" "+map1.getValue()+" ");
}
System.out.println();
}
} catch (SQLException e) {
e.printStackTrace();
}
}
执行结果为:
memery 1000.0 name admin id 1
memery 3000.0 name Test id 2
memery 144.2535 name Test1 id 4
memery 288.507 name Test2 id 5
memery 432.7605 name Test3 id 6
memery 577.014 name Test4 id 7
memery 721.2675 name Test5 id 8
memery 865.521 name Test6 id 9
memery 1009.7745 name Test7 id 10
memery 1154.028 name Test8 id 11
memery 1298.2815 name Test9 id 12
memery 1442.535 name Test10 id 13
memery 1586.7885 name Test11 id 14
memery 1731.042 name Test12 id 15
memery 1875.2955 name Test13 id 16
memery 2019.549 name Test14 id 17
memery 2163.8025000000002 name Test15 id 18
memery 2308.056 name Test16 id 19
memery 2452.3095 name Test17 id 20
memery 2596.563 name Test18 id 21
memery 2740.8165 name Test19 id 22
memery 2885.07 name Test20 id 23
8、ColumnListHandler:返回一列数据,将数据以List集合的形式返回,可以指定列名,或列的索引,从1开始
/**
* ColumnListHandler:返回一列数据,将数据以List<Object>集合的形式返回,可以指定列名,或列的索引,从1开始
* @创建时间:2017年7月18日12:26:59
*/
@Test
public void testSelect7(){
QueryRunner queryRunner = new QueryRunner(DBUtil.getDataSource());
try {
//返回一列数据,将数据以List<Object>集合的形式返回,可以指定列名,或列的索引,从1开始
List<Object> query = queryRunner.query("select id,name,memery from account", new ColumnListHandler("memery"));
for (Object object : query) {
System.out.println(object);
}
} catch (SQLException e) {
e.printStackTrace();
}
}
执行结果为:
1000.0
3000.0
144.2535
288.507
432.7605
577.014
721.2675
865.521
1009.7745
1154.028
1298.2815
1442.535
1586.7885
1731.042
1875.2955
2019.549
2163.8025000000002
2308.056
2452.3095
2596.563
2740.8165
2885.07
9、ScalarHandler:返回一个单元格的数据(也可以认为是返回一个结果,常用于返回总数[select count(8) from account 类型的数据])
/**
* ScalarHandler:返回一个单元格的数据(也可以认为是返回一个结果,常用于返回总数[select count(8) from account])
* @创建时间:2017年7月18日12:31:07
*/
@Test
public void testSelect8(){
QueryRunner queryRunner = new QueryRunner(DBUtil.getDataSource());
try {
//返回一个单元格的数据(也可以认为是返回一个结果,常用于返回总数[select count(8) from account])
Object query = queryRunner.query("select * from account", new ScalarHandler(2));
//输出
System.out.println(query);
} catch (SQLException e) {
e.printStackTrace();
}
}
执行结果为:
admin