当你的结果集是一下两种情况时:
化妆品:0
家电:0
服饰:0
或
化妆品:null
家电:null
服饰:null
你可能出现这个错误:
JavaBean中的字段名与数据库中字段名不一致。
我要:使用聚合函数,返回每一个分类里的商品数。下图这种效果。
输出:结果集为文章开头那两种。
存在Bug代码:count(*) 改成count(*) as num
@Test
public void TestCount(){
// 核心类
QueryRunner queryRunner = new QueryRunner(getDataSource());
// Sql
String sql = "select cname ,count(*) from product inner join category on category_id=cid group by cname;";
// 执行
try {
// 使用javabean
List<CountJavaBean> list = queryRunner.query(sql,new BeanListHandler<>(CountJavaBean.class));
for (CountJavaBean countJavaBean :list){
System.out.println(countJavaBean);
}
// 使用MapMapListHandler
// List<Map<String,Object>> list = queryRunner.query(sql,new MapListHandler());
// for (Map<String,Object> getKey : list){
// for(String rsKey : getKey.keySet()){
// Object value = getKey.get(rsKey);
// System.out.print(value+" ");
// }
// System.out.println();
// }
} catch (SQLException e) {
e.printStackTrace();
}
}
JavaBean:结果集出现null,是因为JavaBean字段num类型设置为Object,而数据库里没有num这个字段,所以只能返回null
结果集出现0,是因为JavaBean字段num类型设置为int,而数据库里没有num这个字段,所以只能返回0.
package jUnit