iterate 方法用来返回一个按照从前向后的顺序依次读取数据库记录的 Iterator 对象。该方法的优点是不用一次读取所有数据并转换为 Java 对象;缺点是只能按顺序访问查询结果集,而且不知道结果集中记录的数目。
语法:
返回值: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());
}