使用SQLServer或其它数据库时,有时候查询条件过多的情况下会报如下类似的错误:
传入的表格格式数据流(TDS)远程过程调用(RPC)协议流不正确。此 RPC 请求中提供了过多的参数。最多应为 2100
这是由于查询条件过多造成的,所以需要分割查询条件,下面附上通用的方法:
/** *分割查询条件集合 */ private static List<List<Integer>> splitList(List<Integer> lists,int limit){ int size=lists.size(); List<List<Integer>> list=new ArrayList<List<Integer>>(); if(limit>size){ list.add(lists); return list; } int result=0; for(int i=0;i<size;i=i+limit){ result=i+limit; if(result>size){ result=size; } list.add(lists.subList(i, result)); } return list; }