使用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有name
和age
属性的吸气剂,没有更新语句,映射可以在不添加任何吸气剂的情况下工作,是有没有办法避免更新语句的吸气剂?
如果您使用最新版本 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
)是映射器方法的唯一参数时,直接 属性 引用才有效。
在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有name
和age
属性的吸气剂,没有更新语句,映射可以在不添加任何吸气剂的情况下工作,是有没有办法避免更新语句的吸气剂?
如果您使用最新版本 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
)是映射器方法的唯一参数时,直接 属性 引用才有效。