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>
  1. 当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>
  1. where标签会在sql语句中添加where。
  2. where后面的语句以and或者or开头的时候,where标签会自动删除开头的and和or
Logo

讨论HarmonyOS开发技术,专注于API与组件、DevEco Studio、测试、元服务和应用上架分发等。

更多推荐