问题描述:

数据库是pgsql,在进行查询操作时,使用了in(xxx,xxx,...),结果因为in里面的参数太多了导致报错

问题原因

当你使用JDBC组装预执行语句的时候,参数的数量是有一个限制的,限制的大小就是2个byte的整数的大小,也就是32767,当超过这个大小的时候你就会看到上面的错误。这是因为PostgreSQL客户端/后端协议规定从客户端发送到PostgreSQL后端的参数的数量为2个byte的integer。
在这里插入图片描述

解决办法

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

更多推荐