hibernate中查询条件用参数的解决方法

来源:互联网 发布:乔治巴塔耶 知乎 编辑:程序博客网 时间:2024/05/09 02:45

1.写公共的方法:
public static String replaceSqlStr(String field,String para,String value)
    {
     String str = "";
     if(!("".equals(value)||value==null))
      str = " and " + field + "=:" +para;
     return str;
    }
   
    public static void replaceSqlStrQuery(Query q,String para,String value)
    {
     if(!("".equals(value)||value==null))
      q.setString(para,value);
    }
   
    public static String replaceLike(String field,String para,String value)
    {
     String str = "";
     if(!("".equals(value)||value==null))
      str = " and " + field + " like :" + para;
     return str;
    }
   
    public static void replaceLikeQuery(Query q,String para,String value)
    {
     if(!("".equals(value)||value==null))
      q.setString(para,"%" + value + "%");
    }
   
    public static String replaceFromDate(String field,String para,String value)
    {
     String str = "";
     if(!("".equals(value)||value==null))
      str = " and " + field + ">=:" +para;
     return str;
    }
   
    public static void replaceFromDateQuery(Query q,String para,String value)
    {
     replaceSqlStrQuery(q,para,value);
    }
   
    public static String replaceToDate(String field,String para,String value)
    {
     String str = "";
     if(!("".equals(value)||value==null))
      str = " and " + field + "<=:" +para;
     return str;
    }
   
    public static void replaceToDateQuery(Query q,String para,String value)
    {
     replaceSqlStrQuery(q,para,value+" 23:59:59");
    } 

2.在查询时就可以调用相应的公共方法

private String paraStr(Know_ExpertSearchForm form)
 {
  StringBuffer sb = new StringBuffer();
  sb.append(Database.replaceSqlStr("t53ExpertClass.classNo","classNo",form.getSClassNo()));
  sb.append(Database.replaceLike("detailContent","detailContent",form.getSDetailContent()));
  return sb.toString();
 }

   Query q = null;
   q = s.createQuery(countHql);
   Database.replaceSqlStrQuery(q,"classNo",form.getSClassNo());
   Database.replaceLikeQuery(q,"detailContent",form.getSDetailContent());

原创粉丝点击