다음과 같이 코드 코드를 복사합니다 .
패키지 com.zxd.test;
java.util.List 가져오기;
import org.hibernate.HibernateException;
org.hibernate.Query 가져오기;
org.hibernate.Session 가져오기;
import org.hibernate.SessionFactory;
import org.hibernate.cfg.Configuration;
import com.zxd.bean.House;
import com.zxd.util.QueryProperty;
/**
* HQL 비공개 쿼리에 대한 테스트 클래스
* @작가 장
*
*/
공개 클래스 TestHouse {
공개 정적 무효 메인(String[] args) {
//공개 멤버 변수
SessionFactory sf = null;
세션 세션 = null;
QueryProperty qp = 새로운 QueryProperty();
//쿼리 데이터를 캡슐화합니다.
qp.setTitle("%好房%");
qp.setStreet_id("1002");
qp.setType_id("1004");
qp.setLow_price(20);
qp.setHigh_price(200);
qp.setSmall_floorage(50);
qp.setBig_floorage(180);
//HQL문
StringBuffer sb = new StringBuffer();
sb.append("집에서 ");
sb.append("(제목은 :title) ");
sb.append("and (type_id like :type_id) ");
sb.append("and (street_id like :street_id) ");
sb.append("and (:low_price와 :high_price 사이의 가격) ");
sb.append("and (:small_floorage와 :big_floorage 사이의 바닥수)");
노력하다 {
//쿼리 실행 시작
sf = 새로운 Configuration().configure().buildSessionFactory();
세션 = sf.openSession();
쿼리 쿼리 = session.createQuery(sb.toString());
query.setProperties(qp);
List<집> list = query.list();
//첫 번째 유형은 다음을 사용합니다: 루프
/*for(하우스 하우스:목록){
System.out.println("제목은 "+house.getTitle());
System.out.println("지역은: "+house.getFloorage());
System.out.println("가격은 : "+house.getPrice());
System.out.println("구역: "+house.getStreet().getDistrict().getName());
System.out.println("거리: "+house.getStreet().getName());
System.out.println("---------");
}*/
//두 번째 루프
for(int i = 0;i<list.size();i++){
System.out.println("제목은 "+list.get(i).getTitle());
System.out.println("지역은: "+list.get(i).getFloorage());
System.out.println("가격은: "+list.get(i).getPrice());
System.out.println("구역: "+list.get(i).getStreet().getDistrict().getName());
System.out.println("거리: "+list.get(i).getStreet().getName());
System.out.println("---------");
}
} catch (HibernateException e) {
// TODO 자동 생성된 캐치 블록
e.printStackTrace();
}마지막으로{
세션.닫기();
SF.close();
}
}
}
위의 예에서 첫 번째 유형의 루프는 제가 기억하지 못하는 것입니다. 키 문자 ":"를 사용합니다. 일반적으로 이 유형의 루프는 컬렉션(List<House>, Map)을 탐색하는 데 사용됩니다.
두 번째 유형의 루프는 일반적인 루프입니다. 이는 Java에서 가장 일반적인 for 루프입니다.