问题描述:
数据库是pgsql,在进行查询操作时,使用了in(xxx,xxx,...)
,结果因为in里面的参数太多了导致报错
问题原因
当你使用JDBC组装预执行语句的时候,参数的数量是有一个限制的,限制的大小就是2个byte的整数的大小,也就是32767,当超过这个大小的时候你就会看到上面的错误。这是因为PostgreSQL客户端/后端协议规定从客户端发送到PostgreSQL后端的参数的数量为2个byte的integer。

解决办法
当时采用的最直接的解决办法是,分批次查询,然后把查询结果塞到列表里面。