最近在做项目的时候遇到了一个很现实的问题,那就是根据场景不同,然后实现有条件的插入,说穿了就是当这列有数据的时候进行数据的插入,没有数据的时候自动忽略这列。其实这些在mybatis的api中有涉及到,但是之前一直没有好好看,直到最近用到了才认真的看了看这块的内容。
<!-- 新增部门人员 -->
<insert id="addStaffForApp" parameterType="com.hivescm.org.dto.StaffForAppDto" >
insert into base_department_staff
<trim prefix="(" suffix=")" suffixOverrides="," >
status,
group_id,
staff_code,
realname,
create_time,
phone,
is_temporary
<if test="param.email !=null">
email,
</if>
<if test="param.userId !=null">
user_id,
</if>
<if test="param.sex !=null">
sex,
</if>
</trim>
<trim prefix="values (" suffix=")" suffixOverrides="," >
#{param.status},
#{param.groupId},
#{param.staffCode},
#{param.realname},
#{param.phone},
#{param.temporary}
<if test="param.email !=null">#{param.email},
</if>
<if test="param.userId !=null">#{param.userId},
</if>
<if test="param.sex !=null">#{param.sex},
</if>
</trim>
</insert>
这里头的trim相信就不用多说了,经常用来去空格。这个trim标签中有三个属性,prefix这个是表明了你要拼接sql的前缀,suffix这个则是表明了动态sql的后缀,suffixOverrides这个会帮助我去掉最后一个多出来的逗号。
我近期也不知道是怎么了,有时候闲下来的时候就觉得好像失去了前进的方向,也许是脱离了原来的舒适区,还不大适应这种996的日子。也有可能是年关将近,新年伊始,但我目前连个最基础的新年计划都还没有。看来这段日子太忙碌了,都开始糊涂的过着,是时候清醒了。