`
乌托邦之爱
  • 浏览: 278600 次
  • 性别: Icon_minigender_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;
	}

 

0
1
分享到:
评论
3 楼 yelangking 2011-11-17  
  其实何必那么写呢,从代码的可读性来说,个人任务还不如1=1  再者,如你这种查询,难道不需要注意sql 注入吗?直接把参数作为字符串拼接在sql后,还是建议使用预处理
2 楼 duanyiyuan 2011-11-16  
你的想法体现了你的探索精神,但是还不如用1=1来的方便,也没有其性能高。
1 楼 lakewang 2011-11-16  
看不懂?应该判断字符串吧

相关推荐

Global site tag (gtag.js) - Google Analytics