ibatIS中返回结果map 并使用list获取
来源:互联网 发布:人大 网络教育二学位 编辑:程序博客网 时间:2024/06/04 18:32
ibatis作为一个轻量级的orm工具现在非常流行,我在使用中发现,有时仅仅希望返回一个类型为map的list就可以了,
比如简单的查询统计之类的,没有必要定义太多的pojo,因此想能不能在ibatis中直接传入sql语句来执行,然后返回map呢?
从网上搜了一下, 还真有,实验成功后总结一下,大家共同进步。
其实很简单,就是在配置文件中添加以下的配置,
先在有两种方法实现动态的传入sql,然后返回List<Map<String,Object>>类型的数据。
第一种:如下
<!-- 测试Sql -->
<select id="sqlQuery" parameterClass="java.lang.String" resultClass="java.util.HashMap" remapResults="true"> <![CDATA[ $sql$ ]]> </select> <select id="getMapList" remapResults="true" resultClass="java.util.HashMap" > <![CDATA[ select ID,USERNAME,PASSWORD,CREATETIME from Account ]]> </select>
注意以上配置中的 remapResults="true",之前就因为没有加这个参数,导致使用不的sql查询时出错的问题。
使用方法就更简单了,拼好sql语句后,调用
sqlMapper.queryForList("sqlQuery", sql)就得到了查询结果,
当然这个结果为List,并且list中的元素为Map类型,循环List,就得到查询明细。
以上方法对 于分类汇总类的查询统计功能尤其实用。如果只是count()的话,就取List的第一个元素就行了。
我们可以把这个方法抽出来写到一个util类中,方法如下
publicstaticList queryForList(String sql){@SuppressWarnings("unchecked")
@Override
publicList<?> getMapList(){
List<?> list =newArrayList();
try{
list= getSqlMapClientTemplate().queryForList(namespace+".getMapList");
}catch(Exception e){
System.out.println(namespace+".getMapList()异常!"
+ e.getMessage());
}
return list;
}
第二种:
在spring + ibatis 结构当中:
语句:
List<Map<String, Object>> list = super.jt.queryForList(sql);
- ibatIS中返回结果map 并使用list获取
- ibatis 查询返回结果为map
- Ibatis 中使用存储过程以及sys_refcursor 返回结果
- ibatis中返回Map类型
- Rest服务实现返回List<Map>结果
- 在hibernate中查询使用list,map定制返回类型
- 在hibernate中查询使用list,map定制返回类型
- ibatis中直执行sql,返回存储Map的List类型
- ibatis 返回结果集
- Ibatis返回结果集
- Ibatis返回结果集
- Ibatis返回结果集
- VC 调用批处理,并获取返回结果.
- 启动Activity并获取返回结果
- MyBatis动态参数为数组、list、Map,并使用oder by给结果排序
- ibatis使用心得——返回Map的Map
- IBATIS返回map
- IBATIS返回map
- 搜索引擎相关资源
- Entiy Framework研究 - 项目架构搭建
- 域名与域名解析-DNS原理
- Hibernate知识宝库
- childNote and children
- ibatIS中返回结果map 并使用list获取
- 浅谈HTTPS传输协议原理
- Spring知识宝库
- java.lang.InstantiationException:(实例化异常)
- 线程的最佳实践二:不使用stop方法停止线程
- typeid操作符
- SetTimer 函数在控制台应用程序中的应用 (在控制台应用程序中使用定时器)
- HDOJ 4529 - N骑士问题 状态压缩DP
- dom4j基本使用