mybatis(18)——动态sql,where标签去掉多余的and和or
1.不使用where标签可能会出现的问题<select id="getStudents" resultType="student" parameterType="map">select * from mybatis_test.student where<if test="id != null">id = #{id}</if><if test="name!=
·
1.不使用where标签可能会出现的问题
<select id="getStudents" resultType="student" parameterType="map">
select * from mybatis_test.student where
<if test="id != null">
id = #{id}
</if>
<if test="name!= null">
and name = #{name}
</if>
</select>
- 当id==null,name!=null的时候,SQL语句变成:
select * from mybatis_test.student where and name = #{name}
2.使用where标签解决问题
<select id="getStudents" resultType="student" parameterType="map">
select * from mybatis_test.student
<where>
<if test="id != null">
id = #{id}
</if>
<if test="name!= null">
and name = #{name}
</if>
</where>
</select>
- where标签会在sql语句中添加where。
- where后面的语句以and或者or开头的时候,where标签会自动删除开头的and和or
更多推荐



所有评论(0)