Kopieren Sie den Codecode wie folgt:
Paket com.zxd.test;
java.util.List importieren;
import org.hibernate.HibernateException;
import org.hibernate.Query;
import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.cfg.Configuration;
import com.zxd.bean.House;
import com.zxd.util.QueryProperty;
/**
* Testklasse für geschlossene HQL-Abfrage
* @author zhang
*
*/
öffentliche Klasse TestHouse {
public static void main(String[] args) {
//Öffentliche Mitgliedsvariablen
SessionFactory sf = null;
Sitzungssitzung = null;
QueryProperty qp = new QueryProperty();
//Abfragedaten kapseln
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-Anweisung
StringBuffer sb = new StringBuffer();
sb.append("from House where");
sb.append("(title like :title) ");
sb.append("and (type_id like :type_id) ");
sb.append("and (street_id like :street_id) ");
sb.append("and (Preis zwischen :low_price und :high_price)");
sb.append("and (floorage between :small_floorage and :big_floorage)");
versuchen {
//Ausführung der Abfrage starten
sf = new Configuration().configure().buildSessionFactory();
session = sf.openSession();
Abfrage query = session.createQuery(sb.toString());
query.setProperties(qp);
List<Haus> list = query.list();
//Der erste Typ verwendet: Schleife
/*for(Haus house:list){
System.out.println("Der Titel ist: "+house.getTitle());
System.out.println("Der Bereich ist: "+house.getFloorage());
System.out.println("Der Preis ist: "+house.getPrice());
System.out.println("Bezirk ist: "+house.getStreet().getDistrict().getName());
System.out.println("Die Straße ist: "+house.getStreet().getName());
System.out.println("------------------------------------------------");
}*/
//Zweite Schleife
for(int i = 0;i<list.size();i++){
System.out.println("Der Titel ist: "+list.get(i).getTitle());
System.out.println("Der Bereich ist: "+list.get(i).getFloorage());
System.out.println("Der Preis ist: "+list.get(i).getPrice());
System.out.println("Bezirk ist: "+list.get(i).getStreet().getDistrict().getName());
System.out.println("Die Straße ist: "+list.get(i).getStreet().getName());
System.out.println("------------------------------------------------");
}
} Catch (HibernateException e) {
// TODO Automatisch generierter Catch-Block
e.printStackTrace();
}Endlich{
session.close();
sf.close();
}
}
}
Der erste Schleifentyp im obigen Beispiel ist mir nicht eingefallen. Er verwendet das Schlüsselzeichen „:“ Im Allgemeinen wird dieser Schleifentyp zum Durchlaufen einer Sammlung verwendet (List<House>, Map).
Der zweite Schleifentyp ist eine gewöhnliche Schleife. Dies ist die häufigste for-Schleife in Java.