我有一个需要使用列表多次执行的SQL语句,现在我正在使用@SQLBATCH执行此操作。
@SqlBatch("INSERT INTO table (name, id) values (:names, :id)")
public abstract void addName(
@Bind("names") List<String> names,
@Bind("id") long id);
我想返回受影响的行数的int。所以我查看了@SQLUpdate,但似乎@SQLUpdate并没有将列表作为参数。
@SqlUpdate("INSERT INTO table (name, id) values (:names, :id)")
public abstract int addName(
@Bind("names") List<String> names,
@Bind("id") long id);
我收到此错误:UnableToCreateStatementException:绑定时出现异常。
有什么办法可以返回受影响行数的int吗?
答案 0 :(得分:0)
我认为您不能以这种方式使用@Update
。
也许您可以以某种方式使用@BindIn
我看不到,但主要是构建in
- id in ('a', 'b', 'c', 'd')
等条件。
此外,我认为您不需要它,因为您的names参数中的元素数量已经为您提供@SqlBatch
执行的插入数量。
因此,在调用代码中,您可以使用name.size()
来获取已执行的插入数。