目录
场景:
问题分析:
问题解决:
场景:
简单讲一下应用场景
我拿到一个项目,完成后端数据处理,在进行可选条件查询时,使用动态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,也会是空字符串。文章来源:https://www.toymoban.com/news/detail-819225.html
果然,在加上判断后可以执行if文章来源地址https://www.toymoban.com/news/detail-819225.html
问题解决:
<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>
到了这里,关于使用动态sql时,if标签不起作用的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!