คัดลอกรหัสรหัส ดังต่อไปนี้:
แพ็คเกจ 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 ระดับสาธารณะ {
โมฆะคงที่สาธารณะ main (String [] args) {
//ตัวแปรสมาชิกสาธารณะ
SessionFactory sf = โมฆะ;
เซสชั่นเซสชัน = 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 = StringBuffer ใหม่ ();
sb.append("จากบ้านที่ ");
sb.append("(ชื่อ เช่น :title) ");
sb.append("และ (type_id เช่น :type_id) ");
sb.append("และ (street_id ชอบ :street_id) ");
sb.append("และ (ราคาระหว่าง :low_price และ :high_price) ");
sb.append("และ (พื้นระหว่าง :small_floorage และ :big_floorage)");
พยายาม {
//เริ่มดำเนินการแบบสอบถาม
sf = การกำหนดค่าใหม่ (). กำหนดค่า (). buildSessionFactory ();
เซสชั่น = sf.openSession();
แบบสอบถามแบบสอบถาม = session.createQuery(sb.toString());
query.setProperties(qp);
รายการ<บ้าน> รายการ = query.list();
//ประเภทแรกใช้: loop
/*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("----------------------------------");
-
//วงที่สอง
สำหรับ (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("----------------------------------");
-
} จับ (HibernateException จ) {
// TODO บล็อก catch ที่สร้างขึ้นอัตโนมัติ
e.printStackTrace();
}ในที่สุด{
เซสชั่น.ปิด();
sf.ปิด();
-
-
-
การวนซ้ำประเภทแรกในตัวอย่างข้างต้นเป็นสิ่งที่ฉันจำไม่ได้ โดยใช้อักขระหลัก /// โดยทั่วไปแล้ว การวนซ้ำประเภทนี้ใช้เพื่อสำรวจคอลเลกชัน (List<House>, Map)
การวนซ้ำประเภทที่สองคือการวนซ้ำทั่วไป นี่เป็นการวนซ้ำที่พบบ่อยที่สุดใน Java