目录
简单讲一下应用场景
我拿到一个项目,完成后端数据处理,在进行可选条件查询时,使用动态sql
?在mapper.xml中我先是这么写的
<select id="list" resultType="com.yizhi.student.domain.StudentInfoDO">
select * from s_student_info
<where>
<if test="name!=null">
student_name like concat('%',#{name},'%')
</if>
<if test="tocollegeId!=null">
and tocollege=#{tocollegeId}
</if>
<if test="tomajorId!=null">
and tomajor=#{tomajorId}
</if>
<if test="classId!=null">
and class_id=#{classId}
</if>
</where>
limit #{currPage},#{pageSize}
</select>
?然后,就出现if标签失效的情况,关键是它有时候也会返回到前端数据,给我都搞蒙了
反复查看,加上网搜索类似案例
大致知道是什么原因
在前端向后端传递数据时,不一定传递的是null,也会是空字符串。
果然,在加上判断后可以执行if
<select id="list" resultType="com.yizhi.student.domain.StudentInfoDO">
select * from s_student_info
<where>
<if test="name!=null and name!=''">
student_name like concat('%',#{name},'%')
</if>
<if test="tocollegeId!=null and tocollegeId!=''">
and tocollege=#{tocollegeId}
</if>
<if test="tomajorId!=null and tomajorId!=''">
and tomajor=#{tomajorId}
</if>
<if test="classId!=null and classId!=''">
and class_id=#{classId}
</if>
</where>
limit #{currPage},#{pageSize}
</select>