mybatis中的where标签可以去除 开头的 and 或者 or 但是放在后面的不行
失败的:
<select id="countNotesByParam" parameterType="map" resultType="int"> select count(*) from cn_note <where> <if test="userId !=null"> cn_user_id= #{userId} and </if> <if test="statusId !=null"> cn_note_status_id= #{statusId} </if> </where> </select>
and 放在后面不能自动去除
成功:
<select id="countNotesByParam" parameterType="map" resultType="int"> select count(*) from cn_note <where> <if test="userId !=null"> cn_user_id= #{userId} </if> <if test="statusId !=null"> and cn_note_status_id= #{statusId} </if> </where> </select>
如果不放在规定位置 也可以使用 trim标签