在使用传统的JDBC时,SQL语句的编写是很严格的,哪怕拼错了一个分号,都会导致错误。而使用动态SQL可以有效地解决这个问题。
动态SQL通过 if, choose, when, otherwise, trim, where, set, foreach标签,可组合成非常灵活的SQL语句,从而提高编程效率。
if大家都不陌生,mybatis中也有if标签:
<select id="findUserById" resultType="user">
select * from user where
<if test="id != null">
id=#{id}
</if>
and deleteFlag=0;
</select>
这里的if标签同样是做判断用,如果传入的id 不为空, 那么SQL才拼接id = #{id}。