帮我解决下好吗?? 以下是我的代码: String sql = "select * from patent where 1=1"; 
int i=0; 
String[] strVar=new String[6]; 
ResultSet rs = null; 
PageModel pageModel = null; 
try { 
if(!search.getSch_titie().equals("") ){ 
sql=sql+" and patent_title like '%?%' "; 
i++; 
System.out.println("sql-"+i+"="+sql); 
strVar[i]=search.getSch_titie(); 

if(!search.getSch_publisher().equals("")){ 
sql=sql+" and publisher like '%?%' "; 
i++; 
System.out.println("sql-"+i+"="+sql); 
strVar[i]=search.getSch_publisher(); 

if(search.getIsPub().equals("0")){ 
sql=sql+" and patent_state=? "; 
i++; 
System.out.println("sql-"+i+"="+sql); 
strVar[i]=search.getIsPub(); 
}else if(search.getIsPub().equals("1")){ 
sql=sql+" and patent_state=? "; 
i++; 
System.out.println("sql-"+i+"="+sql); 
strVar[i]=search.getIsPub(); 
} if(!search.getBegingTime().equals("")  &&  !search.getEndTime().equals("") ){ 
sql=sql+" and pub_time between ? and ? "; 
i++; 
System.out.println("sql-"+i+"="+sql); 
strVar[i]=search.getBegingTime(); 
i++; 
System.out.println("sql-"+i+"="+sql); 
strVar[i]=search.getEndTime(); 
}else{ if(!search.getBegingTime().equals("")){ 
sql=sql+" and pub_time >= ? "; 
i++; 
strVar[i]=search.getBegingTime(); 

if(!search.getEndTime().equals("")){ 
sql=sql+" and pub_time <= ? "; 
i++; 
strVar[i]=search.getEndTime(); 


psts = dbm.updateSql(sql); 
System.out.println(sql); 
if(i>=1){ 
for(int j=1;j <= i;j++){ 
System.out.println("---"+j+"----->>"+"strVar"+j+"="+strVar[j]); 
psts.setString(j, strVar[j-1]); //设置参数的地方,也是报错的地方 

}