前台页面内容,注意这里的类型为字符串类型的数字

<li>
	<label>支付类型:</label>
	<form:select path="payType" class="input-medium">
		<form:option value="">全部</form:option>
		<form:option value="1">线上支付</form:option>
		<form:option value="3">线下支付</form:option>
	</form:select>
</li>

后台 MVC 接收参数:

Class RefundLog {
	....
	/**
	 * 支付类型 1:线上支付服务,3:线下支付服务
	 */
	private String payType;

	.....
}

public String refundOrderList(RefundLog refundLog, HttpServletRequest request, HttpServletResponse response, Model model) {
	.....
}

此时 mybatis 中使用常规的字符串判断,不会进入条件,如下,错误的写法:

<if test="payType == '1'">
	AND rl.pay_type in ('1','ZFBA','WEIX')
</if>

经过调试发现,SQL 未进入判断!!!

正确的写法如下:

将字符串数字toString 一下!!!!

<if test="payType == '1'.toString()">
	AND rl.pay_type in ('1','ZFBA','WEIX')
</if>

搞定!!

Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐