mybatis if test 之 0当做参数传入出问题
2017-09-22 09:42
465 查看
首先前端传入了参数
if(StringUtils.isNotBlank(status)){
requestParam.setProperty("status", Integer.parseInt(status));
}
List<SuperPojo> applicationList = groupDao.getApplicationListByReviewStatusAndMember(requestParam); mapper的sql文为
<select id="getApplicationListByReviewStatusAndMemberCount" parameterType="com.financial.core.pojo.SuperPojo"
resultType="Integer" flushCache="true">
SELECT
count(1)
FROM
review_status rs
LEFT JOIN member_info mi ON mi.member_id = rs.member_id
LEFT JOIN member m ON rs.member_id = m.member_id
<where>
<if test="name!=null and name!=''">
AND mi.name like CONCAT('%',#{name},'%')
</if>
<if test="telephone!=null and telephone!=''">
AND mi.telephone = #{telephone}
</if>
<if test="status!=null and status!=''">
AND rs.status = #{status}
</if>
<if test="applicationTimeStart!=null and applicationTimeEnd!=null">
and rs.update_time >= #{applicationTimeStart} and rs.update_time <
DATE_ADD(#{applicationTimeEnd},INTERVAL 1 DAY)
</if>
</where>
ORDER BY rs.update_time ASC
</select> 解决方法:
mybatis的参数传入为0的时候会把0当做空处理掉
改成如下情况即可
if(StringUtils.isNotBlank(status)){
requestParam.setProperty("status", Integer.parseInt(status));
}
List<SuperPojo> applicationList = groupDao.getApplicationListByReviewStatusAndMember(requestParam); mapper的sql文为
<select id="getApplicationListByReviewStatusAndMemberCount" parameterType="com.financial.core.pojo.SuperPojo"
resultType="Integer" flushCache="true">
SELECT
count(1)
FROM
review_status rs
LEFT JOIN member_info mi ON mi.member_id = rs.member_id
LEFT JOIN member m ON rs.member_id = m.member_id
<where>
<if test="name!=null and name!=''">
AND mi.name like CONCAT('%',#{name},'%')
</if>
<if test="telephone!=null and telephone!=''">
AND mi.telephone = #{telephone}
</if>
<if test="status!=null and status!=''">
AND rs.status = #{status}
</if>
<if test="applicationTimeStart!=null and applicationTimeEnd!=null">
and rs.update_time >= #{applicationTimeStart} and rs.update_time <
DATE_ADD(#{applicationTimeEnd},INTERVAL 1 DAY)
</if>
</where>
ORDER BY rs.update_time ASC
</select> 解决方法:
mybatis的参数传入为0的时候会把0当做空处理掉
改成如下情况即可
<select id="getApplicationListByReviewStatusAndMemberCount" parameterType="com.financial.core.pojo.SuperPojo" resultType="Integer" flushCache="true"> SELECT count(1) FROM review_status rs LEFT JOIN member_info mi ON mi.member_id = rs.member_id LEFT JOIN member m ON rs.member_id = m.member_id <where> <if test="name!=null and name!=''"> AND mi.name like CONCAT('%',#{name},'%') </if> <if test="telephone!=null and telephone!=''"> AND mi.telephone = #{telephone} </if> <if test="status!=null and status!='' or 0 == status"> AND rs.status = #{status} </if> <if test="applicationTimeStart!=null and applicationTimeEnd!=null"> and rs.update_time >= #{applicationTimeStart} and rs.update_time < DATE_ADD(#{applicationTimeEnd},INTERVAL 1 DAY) </if> </where> ORDER BY rs.update_time ASC </select>
相关文章推荐
- mybatis if test 之 0当做参数传入出问题
- 关于mybatis 传入基本参数类型使用if test 判断出错的问题
- Mybatis的if test字符串比较问题
- MyBatis传入多个参数的问题
- Mybatis-Generator生成Mapper文件中<if test="criteria.valid">的问题解答
- MyBatis传入多个参数的问题
- MyBatis if test 字符串判断问题
- MyBatis传入多个参数的问题
- MyBatis传入多个参数的问题
- Mybatis的if test字符串比较问题
- Mybatis的if test字符串比较问题
- MyBatis传入多个参数的问题
- mybatis传入List参数或者单个String 参数等问题
- Mybatis <if test> 判断数字时的问题
- MyBatis传入多个参数的问题
- mybatis if标签test 判断数字遇到的问题
- MyBatis传入参数的问题
- MyBatis传入参数的问题
- Mybatis的if test字符串比较问题
- mybatis -if test=--- 的问题