所谓多条件查询,就是查询数据库的时候,查询的where条件可能不止一个,可能没有条件,也有可能至少一个或者多个条件,遇到这种情况,我提供以下解决办法
1. if 语句拼接
String sql="select s from Student s where 1=1";
if(name!=null&name!=""){
sql=sql+" and s.name like"+"'%"+name+"%'";
}else{
sql=sql;
}
if(gender!=2){
sql=sql+" and s.gender="+gender;
}else{
sql=sql;
}
if(major_id!=0){
sql=sql+" and s.major.id="+major_id;
}else{
sql=sql;
}
Query query = s.createQuery(sql);
首先,if条件中的判断语句判断的就是在表单中某项信息是否被修改,例如,倘若修改了姓名,那么表单提交后此项肯定不为空,则sql语句后面就拼接一个name条件。
简而言之,if 语句拼接的重点就是要选定一个标准,以判断此项信息在表单中是否被更改,若更改则进行拼接,若未更改则忽略。