publicclassCnSuggestOperationextendsDbOperation {publicList>findBycontent(String param) {
String sql="select * from QINDEX";
String sqlquie="where";
String sqlquie2="";
String sqlquie3="";
ArrayList stll=newArrayList();//动态数组 new新对象 stll//-------------------------------------------------if(param.length()>=2) {//param元素长度String str1=param;//str1for(inti=0; i<=str1.length()-1; i++) {
String test=str1.substring(i, i+1);//test对象调用substring方法返回新字符串 第i位后开始取i+1位if(test.matches("[\\u4E00-\\u9FA5]+")) {//[\\u4E00-\\u9FA5]代表所有汉字的编码SearchText st1=newSearchText("content", test, i);//content数据库中字段,test返回的新字符串stll.add(st1);//添加元素st1}else{
SearchText st2=newSearchText("pinyin", test, i);
stll.add(st2);//添加元素st2}
}
}else{
String test=param;if(test.matches("[\\u4E00-\\u9FA5]+")) {
SearchText st1=newSearchText("content", test,0);
stll.add(st1);//指定的st1元素添加到此列表的尾部}else{
SearchText st2=newSearchText("pinyin", test,0);
stll.add(st2);
}
}//------------------------------------------------if(stll.size()==1) {//stll对象的个数为1SearchText str=(SearchText) stll.get(0);//get列表中指定位置上的元素sqlquie+=str.getSearchRow()+"like ?";//str.getSearchRow()查询的字段;str.getSearchWord()搜索框中的关键字sqlquie2="";
sqlquie3="";
System.out.println(sqlquie+"==="+sqlquie2+"==="+sqlquie3);
}elseif(stll.size()==2) {//stll对象的个数为2SearchText str=(SearchText) stll.get(0);
sqlquie+=str.getSearchRow()+"like ?";
SearchText str2=(SearchText) stll.get(1);
sqlquie3+="and"+str2.getSearchRow()+"like ?";
sqlquie2="";
System.out.println(sqlquie+"111"+sqlquie2+"111"+sqlquie3);
}else{//stll对象的个数为多个for(inti=0; i<=stll.size()-1; i++) {
SearchText str=(SearchText) stll.get(i);if(str.getLocation()==0) {
sqlquie+=str.getSearchRow()+"like ?";
}elseif(str.getLocation()==stll.size()) {
sqlquie2+=str.getSearchRow()+"like ?";
}else{if(i<=stll.size()-1||i>=3) {
sqlquie3+="and"+str.getSearchRow()+"like ?";
}else{
sqlquie3+=str.getSearchRow()+"like ?";
}
System.out.println(sqlquie+"222"+sqlquie2+"222"+sqlquie3);
}
}
}returnthis.queryForList(sql+=sqlquie+sqlquie2+sqlquie3,newObject[] {"%"+param+"%"});
}
}