目录
场景:
问题分析:
问题解决:
场景:
简单讲一下应用场景
我拿到一个项目,完成后端数据处理,在进行可选条件查询时,使用动态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>