对于一般的hibernate查询,返回的往往是一个我们熟悉的list,比如:gciLogs = criteria.list();那么这里返回的就是类型是某一个实体的list,get(i)就是这样一个实体,也就是一个记录,然后还可以取得字段值。
而spring的jdbcTemplate.queryForList( sql );先返回一个object,这个object里面是一个map,对应的key就是数据库里面的字段名,value就是我们要取的值了!如:
txnLogList = template.queryForList( sql2 );
Object jf=txnLogList .get(i);
Map txnLog=(Map)jf;
txnLog.get("status").toString() //就是字段status的值了
不这样取的话,就会爆 <!-- google_ad_section_start -->java.lang.ClassCastException: org.apache.commons.collections.map.ListOrderedMap
<!-- google_ad_section_end -->
Hibernate与JdbcTemplate对比
本文对比了Hibernate查询返回list类型与Spring的jdbcTemplate查询返回map类型的区别。Hibernate查询返回实体对象组成的list,可以直接通过索引获取实体并访问其字段;而jdbcTemplate返回的是一个包含字段名作为key的对象集合。
2万+

被折叠的 条评论
为什么被折叠?



