动态SQL一些总结

我只是大自然的搬运工! ————————————————————————————————————————————————————————————————————————————-@晗大大

MyBatis 的强大特性之一便是它的动态 SQL。如果你有使用 JDBC 或其它类似框架的经验,你就能体会到根据不同条件拼接 SQL 语句的痛苦。例如拼接时要确保不能忘记添加必要的空格,还要注意去掉列表最后一个列名的逗号。利用动态 SQL 这一特性可以彻底摆脱这种痛苦。

(1)接口中的方法
public List getEmps(Emp emp);

public void updateEmp(Emp emp);

public List<Emp> getEmpsByIds(@Param("ids") List<Integer> ids);

public void addEmps(@Param("emp") List<Emp> emp);

(2)Mapper文件

if标签 + where标签

<select id="getEmps" resultMap="emp">
    SELECT *FROM emp
    <where>
        <if test="id != null">
            id = #{id}
        </if>
        <if test="lastName != null">
            and last_name = #{lastName}
        </if>
        <if test="geder != null">
             and gender = #{geder}
        </if>
    </where>
</select>

choose,when 有一个when标签成立 ,其余的when标签中的内容不再执行。

set标签 UPDATE emp last_name=#{lastName}, gender = #{geder} WHERE id=#{id}

foreach标签

foreach标签 批量插入

INSERT INTO emp(last_name,gender,email)
VALUES

(#{emps.lastName},#{emps.geder},#{emps.email})

欢迎关注我的其它发布渠道