使用mybatis插入记录列表

时间:2018-03-16 18:00:54

标签: mybatis h2db

我正在尝试使用Mybatis从列表中将记录插入到表中。我使用mybatis速度作为脚本语言。看起来问题出在参数符号#中。我试图用@替换它,因为我使用mybatis速度但没有任何效果。有人可以帮帮我。

Mapper.java:

void insertFileVersions(@Param("versionsList") List<Integer> activeFileVersions);

mapper.xml:

<insert id="insertFileVersions" parameterType="java.util.List">
<foreach collection="versionsList" item="version" index="index">
    INSERT INTO FILE_TEMP (FILE_ID, FILE_VERSION) VALUES (#{version.fileId}, #
{version.fileVersion})
</foreach>
</insert>

我收到错误原因:org.h2.jdbc.JdbcSQLException:找不到列“VERSION.FILEID”; SQL语句

1 个答案:

答案 0 :(得分:0)

对于Velocity来说,这是完全错误的 - 您正在使用XML语言驱动程序语法。使用Velocity语言驱动程序,您使用@{...}而不是#{...},并且还使用#repeat而不是<foreach>。有关示例,请参阅此页面:http://www.mybatis.org/velocity-scripting/

但请考虑以不同方式编写代码并使用MyBatis的批处理功能,而不是生成一个巨大的语句。有关示例,请参阅此常见问题解答:https://github.com/mybatis/mybatis-3/wiki/FAQ#how-do-i-code-a-batch-insert