【发布时间】:2018-04-21 10:55:32
【问题描述】:
我正在使用 JOOQ 调用现有的 MySql 存储过程。我的代码是用 Java 编写的。一切都很好,但是在批量插入时我有点困惑。例如,我有这样的简单:
private void executeBatch(DSLContext context, LinkedList<AbstractRoutine<Void>> procedures) {
BatchBindStep step = null;
for (AbstractRoutine<Void> procedure : procedures) {
step = context.batch (context.select(procedure.asField()));
}
step.execute();
}
所提供的 LinkedList 中的每个过程都是一个更新或插入过程,具有自己的参数集,并且实际上已准备好执行。我只是想将它们绑定在一起进行批处理。
当我尝试执行上面的代码时,我得到了错误:
Caused by: java.sql.BatchUpdateException: Can not issue SELECT via executeUpdate().
我做错了什么?我应该解决什么问题?我试图在线搜索答案,但似乎使用 JOOQ 两个批处理存储过程调用并不那么受欢迎。我必须这样做以保持与我的 pre-JOOQ 应用程序的其余部分的兼容性....
【问题讨论】:
-
记录在案,这也是在用户群上问的:groups.google.com/forum/#!topic/jooq-user/o0Zd9rKoxlg
标签: java mysql stored-procedures jdbc jooq