Mybatis传入参数字符串分割成数组作为条件遍历
2018-08-03 本文已影响986人
小小蒜头
1. 先获取LayUI复选框的值并以逗号拼接在一起
<div class="layui-form-item layui-hide" id="wrap">
<div class="layui-input-block">
<input type="checkbox" name="payMethods" title="现金" value="0">
<input type="checkbox" name="payMethods" title="微信" value="1">
<input type="checkbox" name="payMethods" title="支付宝" value="2">
<input type="checkbox" name="payMethods" title="翼支付" value="3">
<input type="checkbox" name="payMethods" title="银行卡" value="4">
<input type="checkbox" name="payMethods" title="微信公众号" value="5">
</div>
</div>
form.on('submit(storeOrdersQuerySubmit)', function (data) {
var datas = data.field;
var groupCheckbox = $("input[name='payMethods']");
var payMethods = "";
for (var i = 0; i < groupCheckbox.length; i++) {
if (groupCheckbox[i].checked) {
var val = groupCheckbox[i].value;
if (payMethods.length > 0) {
payMethods += "," + val;
} else {
payMethods += val;
}
}
}
tableIns.reload({
where: {
'payMethods': payMethods
}
});
return false;
});

得到的字符串就是2,5
2. Mybatis将传入参数字符串分割成数组作为条件遍历
<select id="selectByDate2" parameterType="com.flyecloud.applychain.model.Orders" resultMap="BaseResultMap">
SELECT
ORDERS.ORDER_ID
FROM
ORDERS
where ORDERS.MER_ID = #{merId,jdbcType=VARCHAR}
<if test="payMethods != null and payMethods.length!=0 ">
AND ORDERS.PAY_METHOD IN
<foreach collection="payMethods.split(',')" item="payMethod"
index="index" open="(" close=")" separator=",">
#{payMethod}
</foreach>
</if>
order by ORDERS.CREATE_DATE
</select>