今天在做项目的时候,写了一个查询窗口
功能:里面可以输入N个条件,如果条件为空则跳过,后台处理这个方案,就需要用到hql的拼接了~!
比如在页面有5个文本框,每个文本框代表数据库里的一个字段。查询代码如下:
StringBuffer hql = new StringBuffer();
hql.append("SELECT * FROM table where 1=1 ");
if(参数1 !=null && !"".equals(参数1)){
hql.append(" AND 列名 ='"+参数1+"'");
}
if(参数2 !=null && !"".equals(参数2)){
hql.append(" AND 列名 ='"+参数2+"'");
}
if(参数3 !=null && !"".equals(参数3)){
hql.append(" AND 列名 ='"+参数3+"'");
}
if(参数4 !=null && !"".equals(参数4)){
hql.append(" AND 列名 ='"+参数4+"'");
}if(参数5 !=null && !"".equals(参数5)){
hql.append(" AND 列名 ='"+参数5+"'");
}