public static String dataProcessing(String fieldName,String fieldValue,List<Object> params){
StringBuffer sql = new StringBuffer();
String[] tmp = fieldValue.split(",");
int count = tmp.length%1000==0?(tmp.length/1000):(tmp.length/1000)+1;
for(int z=0;z<count;z++){
if(z==0){
sql.append(" and ( ");
}else{
sql.append(" or ");
}
boolean isfirst = true;
sql.append( fieldName + " in ( ");
for(int i=z*1000 ; i<(z+1)*1000 & i<tmp.length; i++)
{
String obj = tmp[i];
if(isfirst)
{
sql.append(" ? ");
isfirst = false;
}
else
{
sql.append(",? ");
}
params.add(obj);
}
sql.append(") ");
if(z==count-1)
{
sql.append(" ) ");
}
}
return sql.toString();
}
调用:
List<Object> params = new ArrayList<Object>();
sql.append(StringHelper.dataProcessing("dept_code",nodeId,params));
this.getJdbcTemplate().update(sql.toString(),params.toArray());