mybatis直接传字符串给sql

大部分时候我们使用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 into send_validateMsg_info(phoneNum,validate_code,msg_context,send_date) 
values(#{phoneNum},#{validateCode},#{msgContext},now())

但是有时我们只有一个sql需要的参数,我们再去新建一个Map会对象保存感觉即麻烦又影响代码效率,

这时我们可以用:

pageList = workOrderWeChartService.updateGoodOrderIsOpen(orderId);


update goods_order set ISOPEN='1',OPEN_DATE=now()
where ORDER_ID=#{_parameter}

这样一个参数不管名字,可以直接用#{_parameter}取得,那么如果有两个或以上的参数呢?

一样好办:

public int updateGoodOrderIsOpen updateGoodOrderIsOpen(String  orderId,String  name);


update goods_order set ISOPEN='1',OPEN_DATE=now()
 where ORDER_ID=#{0} and name=#{1}

parameterType就别给类型了,特别注意,参数从0开始,也可以用下面的方式,让sql更直观些:

public int updateGoodOrderIsOpen(@Param("orderId") String orderId,@Param("name") String name);


update goods_order set ISOPEN='1',OPEN_DATE=now()
 where ORDER_ID=#{orderId} and name=#{name}


你可能感兴趣的:(笔记本)