Ibatis/mybatis中,查询SQL参数和返回都是Map的情况

本文介绍了一种使用Map作为SQL查询参数及结果集的方法,避免了ResultMap的繁琐编写。通过示例展示了DAO接口定义、实现以及对应的SQLmap XML配置,并给出页面展示代码。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在实际开发中,经常需要SQL查询的参数为map,而返回的结果集也是map的情况,不用去写繁琐的ResultMap.

其DAO接口代码如下:

public List  getMySuperCardSpentDetail(Map map);

其DAO实现接口如下:

	@Override
	public List getMySuperCardSpentDetail(Map map) {
		List list = getSqlMapClientTemplate().queryForList("***_user_super_card.selectMySuperCardSpentDetail", map);
        return list;
	}

其对应的SQLmap的XML如下:

<select id="selectMySuperCardSpentDetail" parameterClass="map" resultClass="java.util.HashMap" remapResults="true">
    <!--
                     
    -->
    select su.id,su.card_no,su.face_value,su.upc,su.valid_date,p.order_id,p.order_no,p.paid_amount,p.paid_type,p.paid_time
    from **_user_super_card su
    join **_order_payment p on (su.card_no = p.paid_card_no )
    
    <dynamic prepend="WHERE"> 
			
			<isNotNull prepend="and" property="id">
				su.id = #id:Long#
			</isNotNull>

		</dynamic>
  </select>
其中,parameterClass使用接口,resultClass使用具体的实现。

在jsp页面,可以直接这个返回的list

<c:forEach items="${detailList}" var="detail">
				<ul class="uci_list_cont" id="credits1">
                     <li class="w240"><fl:fomatdate str="${detail.paid_time }" pattern="yyyy-MM-dd"/> </li>
					<li class="w110">下单</li>
					<li class="w240"><a href="/cec/activecard/cecOrder/orderDetail?orderNo=${detail.order_no }">${detail.order_no }</a></li>
					<li class="w180">${detail.paid_amount }</li>
					<li class="w100">${entity.leftValue }</li>
				</ul>
				</c:forEach>



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值