1.动态查询映射文件中sql写法:
<select id="selectPersonByCondition" parameterType="map" resultMap="BaseResultMap">
select * from person p
<where>
<if test="name != null">
p.name like '%${name}%'
</if>
<if test="gender != null">
and p.gender = #{gender}
</if>
<if test="personAddr != null">
and p.person_addr like '%${personAddr}%'
</if>
<if test="birthday != null">
<![CDATA[
and p.birthday < #{birthday}
]]>
</if>
</where>
</select>
说明:
1.xml中<号如何转义:
2.where标签可以自动解决and 问题。
2.动态更新:映射文件中sql写法
<update id="dynamicUpdate" parameterType="person">
update person1 p
<set>
<if test="name != null">
p.name = #{name},
</if>
<if test="gender != null">
p.gender = #{gender},
</if>
<if test="personAddr != null">
p.person_addr = #{personAddr},
</if>
<if test="birthday != null">
p.birthday = #{birthday}
</if>
</set>
where p.person_id = #{personId}
</update>
说明:动态更新使用set标签