【 tulaoshi.com - 编程语言 】
代码如下:
package com.zxd.test;
import java.util.List;
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;
/**
* HQL封闭查询的测试类
* @author zhang
*
*/
public class TestHouse {
public static void main(String[] args) {
//公共的成员变量
SessionFactory sf = null;
Session session = null;
QueryProperty qp = new 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("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 (price between :low_price and :high_price) ");
sb.append("and (floorage between :small_floorage and :big_floorage)");
try {
//开始执行查询
sf = new Configuration().configure().buildSessionFactory();
session = sf.openSession();
Query query = session.createQuery(sb.toString());
query.setProperties(qp);
ListHouse list = query.list();
//第一种用:的循环
/*for(House house:list){
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;ilist.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 Auto-generated catch block
e.printStackTrace();
}finally{
session.close();
sf.close();
}
}
}
上面例子中的第一种循环是我没有记住的,用了关键字符“:”,一般这种循环是用来对一个集合的遍历上的(ListHouse、Map)中的用的很方便。
第二种循环是普通的循环我这是Java中最常见的一种for循环。