ibatis查询返回java.util.HashMap结果列表 XML文件中的配置方式
这两天写代码时,遇到一个问题,要求在DAO层要返回一个java.util.HashMap的结果集,但是平常我们多返回List或者VO,在网上搜索了下,结果找到了这样一个方法,记录如下:
DAO的实现类中的代码:
在业务层调用getItemNames()时,返回的结果已经是一个标准的java.util.HashMap了,可以使用其方法
get(String key)来直接获取对应的value,非常方便。
参考地址:http://osdir.com/ml/java.ibatisdb.user/2005-01/msg00336.html 1 楼 icanfly 2010-10-03 返回Map是方便了,以后维护起来就痛苦了,还是老实的写VO/BO吧 2 楼 纠结的java 2010-10-06 原来可以这样,这个挺方便的啊,受教,
估计能用上。 3 楼 cremains 2010-10-08 icanfly 写道返回Map是方便了,以后维护起来就痛苦了,还是老实的写VO/BO吧
请教一下,用Map怎么不好维护了?目前我们项目刚开始做,采用的是查询列表用List<Map>,单条数据Map
4 楼 madsion8875 2010-10-13 map可以当做一个对象来用,key作为属性名,value作为属性值。很好用的 5 楼 抛出异常的爱 2010-10-13 icanfly 写道返回Map是方便了,以后维护起来就痛苦了,还是老实的写VO/BO吧
VO/BO也不一定好维护.......
PS:PO
PS2:楼主的那种作孽方式
还是放在dao里作吧
别放在xml来配.
为了少写几句code
不知道要杀死多少
看代码的脑细胞.....
6 楼 hanz188 2010-10-14 的确,这么做不是很合理,但是因为我们项目的限制,不得不这样做,通过查询数据库生成一个Map,然后遍历Map中的Key来找相对应的Value,为的是生成一个菜单列表,其中Key就是每个菜单项的ID,Value就是菜单项的名称(显示在页面上)。 7 楼 抛出异常的爱 2010-10-14 hanz188 写道的确,这么做不是很合理,但是因为我们项目的限制,不得不这样做,通过查询数据库生成一个Map,然后遍历Map中的Key来找相对应的Value,为的是生成一个菜单列表,其中Key就是每个菜单项的ID,Value就是菜单项的名称(显示在页面上)。
List list = getSqlMapClientTemplate().queryForMap("xxxxx",xxxx);
Map result= new TreeMap();
for(Map map : list){
result.put(map.get("AA"),map.get("bb"));
}
return result;
这个不作孽 8 楼 weixuanfeng 2010-10-14 map构建却是是比较简单,但是后续传值构建成一个Map,和取值取出一个Map的话代码比较多影响性能。
直接传入一个bean吧,构建一个bean文件。两个值即可。
然后在数据配置里面也改成bean文件,就好了。取的时候bean打点不就出来了吗。 9 楼 hanz188 2010-10-14 感觉weixuanfeng的思路比较好,用Bean来传递结果集列表的思路比较常用,当时做的时候我没有想到可以引入一个Bean来完成这个工作,所以用了Map。 10 楼 zzy7182 2011-06-30 如果value是一个对象呢,如何配置。 11 楼 神之小丑 2011-06-30 我最近就很头大,一同事跳槽了,他在这个功能快a用的是hashMap
而同一模块的另一功能b 是由另一同事做的,他用的是vo
结果 现在我要b调a 结果悲剧啊,,,