Hibernate Query介面 iterate方法:返回查詢結果的疊代器

2020-07-16 10:04:58
iterate 方法用來返回一個按照從前向後的順序依次讀取資料庫記錄的 Iterator 物件。該方法的優點是不用一次讀取所有資料並轉換為 Java 物件;缺點是只能按順序存取查詢結果集,而且不知道結果集中記錄的數目。

語法:

iterate()


返回值:Iterator 物件。

範例

在進行 HQL 查詢時,呼叫 iterator 方法返回讀取資料庫記錄的 Iterator 物件,並將讀取的結果儲存到 List 集合中,關鍵程式碼如下:
Session session = sessionFactory.openSession();  //建立session物件
String hql = "from UserForm";  //定義查詢HQL語句
Iterator it = null;
List rtnList = new ArrayList();  //定義儲存查詢結果的List集合物件
try{
  Query query = session.createQuery(hql);
  it = query.iterate();  //返回讀取資料庫記錄的Iterator物件
  while(it.hasNext()){  //迴圈遍歷疊代器
    UserForm uf = new UserForm();
    Object[] o= (Object[])it.next();  //獲取集合中資料
    uf.setId((Integer)o[0]);  //設定JavaBean屬性
    uf.setUsername((String)o[1]);
    uf.setPwd((String)o[2]);
    rtnList.add(uf);  //新增到List集合中
  }
}catch(Exception e){
  System.out.println("查詢使用者資訊時的錯誤資訊:"+e.getMessage());
}