使用mybatis dynamic sql如何避免getter?

How to avoid getters when using mybatis dynamic sql?

在mybatis中我们可以这样写更新语句:

<update id="update" parameterType="com.test.User">
  update USERS
  <set>
    <if test="user.name != null">NAME=#{user.name},</if>
    <if test="user.age != null">AGE=#{user.age}</if>
  </set>
</update>

然后它要求User class有nameage属性的吸气剂,没有更新语句,映射可以在不添加任何吸气剂的情况下工作,是有没有办法避免更新语句的吸气剂?

如果您使用最新版本 3.5.1 应该可以使用(change 是在 3.5.0 中制作的)。

如果您由于某种原因无法升级,如果您 1) 从方法参数中删除 @Param("user") 和 2) 如下直接引用字段,它可能仍然有效。

<update id="update">
  update USERS
  <set>
    <if test="name != null">NAME=#{name},</if>
    <if test="age != null">AGE=#{age}</if>
  </set>
</update>

仅当 bean(即 User)是映射器方法的唯一参数时,直接 属性 引用才有效。