hibernate 多条件组合查询 之 sql 拼接

public static void main(String[] args) { <o:p></o:p>
       <o:p></o:p>
       Session session = null ; <o:p></o:p>
       Transaction tx = null ; <o:p></o:p>
       List list = null ; <o:p></o:p>
       Criteria criteria = null ; <o:p></o:p>
<o:p> </o:p>
       try { <o:p></o:p>
<o:p> </o:p>
           session = HibernateSessionFactory.getSession(); <o:p></o:p>
           tx = session.beginTransaction(); <o:p></o:p>
<o:p> </o:p>
           DetachedCriteria detachedCriteria = DetachedCriteria <o:p></o:p>
                  .forClass(InfoTab. class ); <o:p></o:p>
           <o:p></o:p>
           <o:p></o:p>
           String sql= " 1=1 " ; <o:p></o:p>
           <o:p></o:p>
           Integer pareaId = 0; // 父地区; <o:p></o:p>
           Integer careaId = 0; // 子地区; <o:p></o:p>
           Integer categoryId = 0; // 类别; <o:p></o:p>
           String infoPrivider = " 中介 " ; // 来源; <o:p></o:p>
           String houseType= " 地下室 " ; // 房屋类型; <o:p></o:p>
           Integer hxBedRoom=0; // 室; <o:p></o:p>
           Integer hxLivingRoom=0; // 厅; <o:p></o:p>
           <o:p></o:p>
           String hzHouseStatus= " 有房出租 " ; // 合租类型 ; <o:p></o:p>
           String hzRequestSex= " " ; // 性别要求; <o:p></o:p>
           String fixUp= " 尚未 " ; // 装修程度 ; <o:p></o:p>
           Integer lcHeightMolecuse=0; // 楼层; <o:p></o:p>
           String orientation= " 东南 " ; // 朝向要求 ; <o:p></o:p>
           Integer buildArea=2000; // 建筑面积; <o:p></o:p>
           Integer useArea=80; // 使用面积; <o:p></o:p>
           Integer rentalDigit=2000; // 租金 / 价格; <o:p></o:p>
           String title= " 出租 " ; // 标题; <o:p></o:p>
           <o:p></o:p>
           if (pareaId!=0) <o:p></o:p>
           { <o:p></o:p>
              sql+= "pareaId=" + pareaId; <o:p></o:p>
           } <o:p></o:p>
           if (careaId!=0) <o:p></o:p>
           { <o:p></o:p>
              sql+= " and careaId=" + careaId; <o:p></o:p>
           } <o:p></o:p>
           if (categoryId!=0) <o:p></o:p>
           { <o:p></o:p>
              sql+= " and categoryId=" + categoryId; <o:p></o:p>
           } <o:p></o:p>
           if (!infoPrivider.equals( "" )) <o:p></o:p>
           { <o:p></o:p>
              sql+= " and infoPrivider='" + infoPrivider + "'" ; <o:p></o:p>
           } <o:p></o:p>
           if (!houseType.equals( "" )) <o:p></o:p>
           { <o:p></o:p>
              sql+= " and houseType='" + houseType + "'" ; <o:p></o:p>
           } <o:p></o:p>
           if (hxBedRoom!=0) <o:p></o:p>
           { <o:p></o:p>
              sql+= " and hxBedRoom=" + hxBedRoom; <o:p></o:p>
           } <o:p></o:p>
           if (hxLivingRoom!=0) <o:p></o:p>
           { <o:p></o:p>
              sql+= " and hxLivingRoom=" + hxLivingRoom; <o:p></o:p>
           } <o:p></o:p>
           if (!hzHouseStatus.equals( "" )) <o:p></o:p>
           { <o:p></o:p>
              sql+= " and hzHouseStatus='" + hzHouseStatus + "'" ; <o:p></o:p>
           } <o:p></o:p>
           if (!hzRequestSex.equals( "" )) <o:p></o:p>
           { <o:p></o:p>
              sql+= " and hzRequestSex='" + hzRequestSex + "'" ; <o:p></o:p>
           } <o:p></o:p>
           if (!fixUp.equals( "" )) <o:p></o:p>
           { <o:p></o:p>
              sql+= " and fixUp='" + fixUp + "'" ; <o:p></o:p>
           } <o:p></o:p>
           if (lcHeightMolecuse!=0) <o:p></o:p>
           { <o:p></o:p>
              sql+= " and lcHeightMolecuse=" + lcHeightMolecuse; <o:p></o:p>
           } <o:p></o:p>
           if (!orientation.equals( "" )) <o:p></o:p>
           { <o:p></o:p>
              sql+= " and orientation='" + orientation + "'" ; <o:p></o:p>
           } <o:p></o:p>
           if (buildArea!=0) <o:p></o:p>
           { <o:p></o:p>
               sql+= " and buildArea=" + buildArea; <o:p></o:p>
           } <o:p></o:p>
           if (useArea!=0) <o:p></o:p>
           { <o:p></o:p>
              sql+= " and useArea=" + useArea; <o:p></o:p>
           } <o:p></o:p>
           if (rentalDigit!=0) <o:p></o:p>
           { <o:p></o:p>
              sql+= " and rentalDigit=" + rentalDigit; <o:p></o:p>
           } <o:p></o:p>
           if (!title.equals( "" )) <o:p></o:p>
           { <o:p></o:p>
              sql+= " and title like '%" + title + "%'" ; <o:p></o:p>
           } <o:p></o:p>
           sql+= " order by id desc" ; <o:p></o:p>
           <o:p></o:p>
           System. out .println(sql); <o:p></o:p>
<o:p> </o:p>
           detachedCriteria.add(Restrictions.sqlRestriction(sql)); <o:p></o:p>
<o:p> </o:p>
           criteria = detachedCriteria.getExecutableCriteria(session); <o:p></o:p>
<o:p> </o:p>
           list = criteria.list(); <o:p></o:p>
           <o:p></o:p>
           for ( int i=0;i<list.size();i++) <o:p></o:p>
           { <o:p></o:p>
              InfoTab infoTab = (InfoTab)list.get(i); <o:p></o:p>
              System. out .println(infoTab.getTitle() + " " + infoTab.getCategoryId() + " " + infoTab.getPareaName() + " " + infoTab.getCareaName() + " " + infoTab.getHouseType() + " " + infoTab.getInfoPrivider()); <o:p></o:p>
           } <o:p></o:p>
<o:p> </o:p>
           tx.commit(); <o:p></o:p>
<o:p> </o:p>
       } catch (HibernateException he) { <o:p></o:p>
           he.printStackTrace(); <o:p></o:p>
       } <o:p></o:p>
    }

出处http://maomao.blog.51cto.com/115985/33883

你可能感兴趣的:(sql,Hibernate,Blog)