postgresql jdbc驱动程序如何实现准备好的批处理?

时间:2016-04-21 03:32:48

标签: postgresql jdbc

正如文档所述,在扩展查询协议中,“查询字符串 包含在Parse消息中的不能包含多个SQL 语句”。

所以在准备好的声明中支持批处理,我认为唯一的办法就是 提前确定批量大小,然后创建相应的 准备好的陈述,例如

鉴于批量大小固定为3,请准备以下声明:

-- create table foobar(a int, b text);
insert into foobar values($1, $2), ($3, $4), ($5, $6);

然后,这个准备好的语句必须与3组参数绑定。

限制很明显:批量大小是固定的,所以如果你需要 做批量大小为4,之前准备好的声明是没用的 你需要重新创建它。

另一方面,在JDBC中,您似乎只需要准备 以下声明:

insert into foobar values($1, $2);

然后重复调用addBatch(),直到您认为批量大小足够。

postgresql jdbc驱动程序转换为什么是最终语句?我 好奇。

我不熟悉jdbc,虽然我检查了驱动程序源代码 代码,但我仍然无法理解。

有人知道答案吗?感谢。

0 个答案:

没有答案