日期:2014-05-20  浏览次数:20608 次

dao防注入????
在dao层模糊搜索的时候非常多字段,只能用拼接sql语句才行,字段!=null就按这个字段搜索,如果用PreparedStatement,可能就没法做到前者那样的效果了,,每个?号必须赋值。

------解决方案--------------------
那就用拼凑hql 语句


实体类 a = new 实体类构造函数();
Map m = new hashMap();
StringBuffer hql = new StringBuffer();
hql.append("from 实体类 as a where 1=1 "); 【1=1 后面留点空格最好】

if(!a.XXX.trim().equels("")){
 hql.append(" or a.XXX like :name ")
 map.put("name","value1");
 
}
if(!a.YYY.trim().equels("")){
hql.append(" or a.YYY like :age");
map.put("age","value2");

}
  
hibernate.find(hql.toString(),map);
//...
------解决方案--------------------
探讨
dao防注入????