大部分时候我们使用Map或实例对象传送多个数据给mybatis的sql,
例如:
param.put("openId", openId);
param.put("userId", userId);
param.put("pageNum", pageNum);
param.put("pageSize", pageSize);
param.put("pageStart", (pageNum-1)*pageSize);
pageList = workOrderWeChartService.qryEvaluateListByUserId(param);
xml:parameterType="map"
<insert id="addSendValidateMsgRecord" parameterType="map">
insert into send_validateMsg_info(phoneNum,validate_code,msg_context,send_date)
values(#{phoneNum},#{validateCode},#{msgContext},now())
</insert>
但是有时我们只有一个sql需要的参数,我们再去新建一个Map会对象保存感觉即麻烦又影响代码效率,
这时我们可以用:
pageList = workOrderWeChartService.updateGoodOrderIsOpen(orderId);
<update id="updateGoodOrderIsOpen" parameterType="java.lang.String">
update goods_order set ISOPEN='1',OPEN_DATE=now()
where ORDER_ID=#{_parameter}
</update>
这样一个参数不管名字,可以直接用#{_parameter}取得,那么如果有两个或以上的参数呢?
一样好办:
public int updateGoodOrderIsOpen updateGoodOrderIsOpen(String orderId,String name);
<update id="updateGoodOrderIsOpen" >
update goods_order set ISOPEN='1',OPEN_DATE=now()
where ORDER_ID=#{0} and name=#{1}
</update>
public int updateGoodOrderIsOpen(@Param("orderId") String orderId,@Param("name") String name);
<update id="updateGoodOrderIsOpen" >
update goods_order set ISOPEN='1',OPEN_DATE=now()
where ORDER_ID=#{orderId} and name=#{name}
</update>