Скопируйте код кода следующим образом:
пакет com.zxd.test;
импортировать java.util.List;
импортировать org.hibernate.HibernateException;
импортировать org.hibernate.Query;
импортировать org.hibernate.Session;
импортировать org.hibernate.SessionFactory;
импортировать org.hibernate.cfg.Configuration;
импортировать com.zxd.bean.House;
импортировать com.zxd.util.QueryProperty;
/**
* Тестовый класс для закрытого запроса HQL.
* @автор Чжан
*
*/
общественный класс TestHouse {
public static void main(String[] args) {
//Публичные переменные-члены
SessionFactory сф = ноль;
Сеанс сеанса = ноль;
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 = новый StringBuffer();
sb.append("из дома, где ");
sb.append("(заголовок типа :title) ");
sb.append("и (type_id например:type_id)");
sb.append("и (street_id например :street_id)");
sb.append("and (цена между :low_price и :high_price) ");
sb.append("and (площадь между :small_floorage и :big_floorage)");
пытаться {
//Начинаем выполнение запроса
sf = новая конфигурация().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 Автоматически сгенерированный блок catch
е.printStackTrace();
}окончательно{
сеанс.закрыть();
сф.закрыть();
}
}
}
Первый тип цикла в приведенном выше примере — это то, что я не запомнил. Он использует ключевой символ «:». Обычно этот тип цикла используется для обхода коллекции (удобно List<House>, Map).
Второй тип цикла — обычный цикл. Это наиболее распространенный цикл for в Java.