sql拼接可用于在多条件查询中,在这整理出了两种实现方式:
方式1:未通过预编译的操作代码:
public class Test extends DBConnection{
Public List<InsectPest> getAllByCondtion(Map map,int pageNo)throws Exception{
this.openConnection();//打开连接
String sql = "select * from t_insect_pests where 1=1";//查询当前页面的所有内容,where 1=1表示永远为真
if(map.get("host") != null && !map.get("host").equals(""){
sql = sql+" and f_host like '%"+map.get("host")+"%' ";//sql拼接。
}
sql = sql+" limit "+(pageNo-1)*2+",2";//分页
}finally{
this.closeConnection();
}
}
方式2:经过预编译的操作代码:
public class Text extends DBConneceetion{
public List<Insectpets> getAllByCondtion(Map map,int pageNo)throws Exception{
this.getConnection();
StringBuffer sb = new StringBuffer("select * from t_insect_pests where 1 = 1");
List parm = new ArrayList();
if(map.get("startTime") != null && map.get("endTime") != null){
sb.append(" and t_time > ? and t_time < ?");
pram.and(" %"+map.get("startTime")+map.get("endTime")+"%");
}else{
if(map.get("startTime" != null && ! map.get("startTime").equalse("")){
sb.append(" and t_time >=?");
pram.add("%"+map.get(startTime)+"%");
}else if(map.get("endTime") != null && !map.get("endTime").equalse("")){
sb.append(" and t_time <?");
pram.add("%"map.get("endTiem")"%");
}
String sql = sb.toString()+" limit " +(pageNo-1)*2+",2";
this.ps=con.prepareStatement(sql);
for(int i = 0;1<pram.size();i++){
this.ps=setObject(i+1,pram.get(i));
}
this.rs = ps.executeQuery();
List<InsectPets> listbean = new ArrayList();
while(rs.next()){
创建实例对象:。。。。
。。。。。。。。。。
listbean.add();
}
return listbean;
}
}
}