Database 在MyBatis中,如何设置<;sql>;再利用元素
Database 在MyBatis中,如何设置<;sql>;再利用元素,database,config,mybatis,Database,Config,Mybatis,元素如下: <sql id="update_fragment"> <set> <if test="id != null"> id = #{id}, </if> <if test="name != null"> id = #{name}, </if> ... </set>
元素如下:
<sql id="update_fragment">
<set>
<if test="id != null">
id = #{id},
</if>
<if test="name != null">
id = #{name},
</if>
...
</set>
</sql>
现在,我编写一个batchUpdate方法:
Integer batchUpdate(@Param("ids")List<Integer> ids, @Param("bean")MyTableBean myTableBean);
Integer update(@Param("bean") MyTableBean myTableBean);
Integer batchUpdate(@Param(“ids”)列表id、@Param(“bean”)MyTableBean MyTableBean);
我想重复使用“update\u fragment”元素
<update id="update">
UPDATE MyTable
<include refid="update_fragment"/>
WHERE ids IN
<foreach>...</foreach>
</update>
更新MyTable
身份证在哪里
...
但“更新片段”中的范围似乎是错误的。似乎我必须重写一个
,它将{id}
更改为{bean.id}
可以在不重写新的
的情况下重新使用该语句。您可以尝试将@Param注释添加到更新方法中:
Integer batchUpdate(@Param("ids")List<Integer> ids, @Param("bean")MyTableBean myTableBean);
Integer update(@Param("bean") MyTableBean myTableBean);
然后更正sql表达式:
<sql id="update_fragment">
<set>
<if test="id != null">
id = #{bean.id},
</if>
<if test="name != null">
id = #{bean.name},
</if>
...
</set>
id=#{bean.id},
id=#{bean.name},
...
因此,这将为您增加一些普遍性