Query的两个方法,list() 和 iterate() , 两个方法都是把结果集列出来, 他们有3点不一样,
1:返回的类型不一样,list()返回List, iterate()返回Iterator,
2: 获取数据的方式不一样,list()会直接查数据库, iterate()会先到数据库中把id都取出来,然后真正要遍历某个对象的时候先到缓存中找,如果找不到,以id为条件再发一条sql到数据库,这样如果缓存中没有数据,则查询数据库的次数为n+1。
3:iterate会查询2级缓存, list只会查询一级缓存。
4: list()中返回的List中每个对象都是原本的对象, iterate()中返回的对象是代理对象.(debug可以发现)
改写BookDao以及实现类来测试一下list()和iterate();在BookDao中添加一个方法:
- public void iterate(){
-
Iterator itr = getSession().createQuery("from Book").setMaxResults(5).iterate();
-
while(itr.hasNext()){
-
- Book b = (Book)itr.next();
- System.out.println(b);
- }
- }
test case:
- BookDao dao = new BookHibernateDao();
- dao.iterate();
-
System.out.println("**************************");
- dao.iterate();
-
List<Book> list = dao.pagedList(6, 5);
-
list = dao.pagedList(6, 5);
分享到:
相关推荐
NULL 博文链接:https://364232252.iteye.com/blog/2369137
3 list和iterate不同之处(//主要为了面试 详见hibernate_2900_Hibernate_list_iterate) 4 一级缓存和二级缓存和査询缓存(面试题)(详见hibernate_3000_Hibernate_3KindsOf_Cache) 5 事务并发处理(面试的意义...
jsp脚本和<logic:iterate>标签:实现循环和分支逻辑 jsp脚本和<logic:iterate>标签:实现循环和分支逻辑 jsp脚本和<logic:iterate>标签:实现循环和分支逻辑
一.使用Hibernate的Session对象操作数据库 1.初始化Hibernate:在要使用Hibernate的类的方法中实例化... (7).createQuery(String HQL).list()/iterate()/uniqueResult(); //HQL(Hibernate Query Language)语句查询
我就是靠这个文档实现logic:iterate的循环的 struts 标签 logic:iterate使用 logic:iterate <br>第一页 是struts官方的说明, 第二页 是个例子 第三页 是我实现的arrayList放入标签的方法。 这是页面...
ibatise中关于iterate的用法的例子
Map里存放的是List时 <br><logic:iterate id="destMap" name="srcMap"> <br> <logic:iterate id="bean" name="destMap" property="value" /> <br> <bean:write name="bean" property="name" /><br> ...
当应用程序调用Session的save()、update()、savaeOrUpdate()、get()或load(),以及调用查询接口的list()、iterate()或filter()方法时,如果在Session缓存中还不存在相应的对象,Hibernate就会把该对象加入到第一级...
11.1.2 Java时间和日期类型的Hibernate映射类型 11.1.3 Java大对象类型的Hibernate映射类型 11.1.4 JDK自带的个别Java类的Hibernate映射类型 11.1.5 使用Hibernate内置映射类型 11.2 客户化映射类型 ...
struts-logic iterate标签学习指南 这标签还不错
Iterate主要用来处理在页面上输出集合类,集合一般来说是下列之一: 1、 java对象的数组 2、 ArrayList、Vector、HashMap等
logic:iterate 产生问题的图
NULL 博文链接:https://duqiangcise.iteye.com/blog/286764
11.1.2 Java时间和日期类型的Hibernate映射类型 11.1.3 Java大对象类型的Hibernate映射类型 11.1.4 JDK自带的个别Java类的Hibernate映射类型 11.1.5 使用Hibernate内置映射类型 11.2 客户化映射类型 ...
11.1.2 Java时间和日期类型的Hibernate映射类型 11.1.3 Java大对象类型的Hibernate映射类型 11.1.4 JDK自带的个别Java类的Hibernate映射类型 11.1.5 使用Hibernate内置映射类型 11.2 客户化映射类型 ...
11.1.2 Java时间和日期类型的Hibernate映射类型 11.1.3 Java大对象类型的Hibernate映射类型 11.1.4 JDK自带的个别Java类的Hibernate映射类型 11.1.5 使用Hibernate内置映射类型 11.2 客户化映射类型 ...
This source demonstrate how to iterate the recent doc
随机迭代 以随机顺序迭代列表中的值 npm install random-iterate 用法 var iterate = require ( 'random-iterate' ) var ite = iterate ( [ 1 ,... log ( ite ( ) ) // returns null (end of list) 执照 麻省理工学院
我们前面已经指出Oracle的Lob字段和一般类型的字段在操作上有一个明显的区别--那就是你必须首先通过Oracle的empty_blob()/empty_clob()初始化Lob字段,然后获取该字段的引用,通过这个引用更改其值。所以要完成对...