java多条件模糊查询代码大略实现方法非where 1=1方法
java多条件模糊查询代码大概实现方法非where 1=1方法
/** * 查询列表 * @return */ public String findJkjkMalfuncExperiencList() { StringBuilder hql =new StringBuilder("from JkjkMalfuncexperience "); boolean b = true; if(jkjkMalfunc!=null) { if(jkjkMalfunc.getExpid()!=null&&!"".equals(jkjkMalfunc.getExpid())) { //判断是否有where存在 b = this.hashWhere(hql,b); hql.append(" expid like '%"+jkjkMalfunc.getExpid()+"%'"); } if(jkjkMalfunc.getExptitle()!=null&&!"".equals(jkjkMalfunc.getExptitle())) { b = this.hashWhere(hql,b); hql.append(" exptitle like '%"+jkjkMalfunc.getExptitle()+"%'"); } System.out.println("测试语句:"+hql); PageResultSet pageResultList = jkjkMalfuncExperienceManager.findJkjkMalfuncList(currentPage,10,hql.toString()); ActionContext.getContext().put("pageResultList", pageResultList); } return SUCCESS; } //判断where是否存在方法 public boolean hashWhere(StringBuilder hql,boolean hashWhere) { //where存在将返回false if(hashWhere) { hql.append(" where "); hashWhere = false; }else { hql.append(" and "); } return hashWhere; }
1 楼
lakewang
2011-11-16
看不懂?应该判断字符串吧
2 楼
duanyiyuan
2011-11-16
你的想法体现了你的探索精神,但是还不如用1=1来的方便,也没有其性能高。
3 楼
yelangking
2011-11-17
其实何必那么写呢,从代码的可读性来说,个人任务还不如1=1 再者,如你这种查询,难道不需要注意sql 注入吗?直接把参数作为字符串拼接在sql后,还是建议使用预处理