遇到个问题,需要修改个功能这个mapper里面传的参数非常多有可能6000以上,直接传就报错了
报错信息如下
在这里插入代码片### Error querying database. Cause: com.microsoft.sqlserver.jdbc.SQLServerException: 传入的请求具有过多的参数。该服务器支持最多 2100 个参数。请减少参数的数目,然后重新发送该请求。 ### The error occurred while setting parameters ### SQL: ### Cause: com.microsoft.sqlserver.jdbc.SQLServerException: 传入的请求具有过多的参数。该服务器支持最多 2100 个参数。请减少参数的数目,然后重新发送该请求。 ; uncategorized SQLException for SQL []; SQL state [S0001]; error code [8003]; 传入的请求具有过多的参数。该服务器支持最多 2100 个参数。请减少参数的数目,然后重新发送该请求。; nested exception is com.microsoft.sqlserver.jdbc.SQLServerException: 传入的请求具有过多的参数。该服务器支持最多 2100 个参数。请减少参数的数目,然后重新发送该请求。
修改思路用2000作为节点,做循环,第一次是0到2000,第二次2001到4000……
放部分代码供大家参考,实体类si中的Ptjhdidlist就是那个巨大的参数,后续就是往mapper里注入了,自行发挥吧
String[] split = ptjhdid.split(",");
if(split.length<=2000) {
for(int i=0;izong){
r=zong;
}
String[] spo = Arrays.copyOfRange(split, h, r);
for(int d=0;d 


