`

Query中list和iterator的区别

 
阅读更多

1.返回的类型不一样,list()返回List,iterate()返回Iterator。

2.获取数据的方式不一样,list()直接查询数据库,iterate()会先到数据库中把ID都取出来,查询非ID数据时,会先到缓存中找,没有则以ID为条件发送sql到数据库检索,所以查询次数为N+1.

3.iterate会查询二级缓存,list只会查询一级缓存。

4.list()中返回的是实体对象,iterate()中返回的是代理对象。

5.list()执行时,直接运行所需要的查询语句,iterator()则是先执行得到对象ID的查询,然后根据ID取得所需。

总结:list()查询通常只会执行一个SQL语句,而iterator()查询则可能需要执行N+1条SQL语句(N为结果集中的记录数)。

分享到:
评论

相关推荐

    Hibernate中的query 分页.doc

    一、query.scroll()和query.setFirstResult(),query.setMaxResults();这两种方法都可以取到一定范围内的数据,用来数据分页显示。那么两者区别,以及两者的效率如何? 答:1.scroll是用JDBC2.0的可滚动结果集实现;...

    Struts2实现分页

    <s:iterator value="list" status="st"> <td><s:property value="username"/> <td><s:property value="password"/> <td><s:property value="power"/> <td><s:property value="cdate"/> <td><a href="input?user....

    hibernate二级缓存

    Hibernate二级缓存 在一个数据库系统中,如果缓存设置的... hibernate.cache.use_query_cache必须配置,如果想缓存使用findall()、list()、Iterator()、createCriteria()、 createQuery()等方法获得的数据结果集。

    hibernate更新数据方法小结

    代码如下:Usertable user=null; Session session=HibernateSessionFactory.getSession();... List l=q.list(); Iterator ite=l.iterator(); if(ite.hasNext()){ user=(Usertable)ite.next(); } return us

    cpp-算法精粹

    Binary Search Tree Iterator Binary Tree Zigzag Level Order Traversal Recover Binary Search Tree Same Tree Symmetric Tree Balanced Binary Tree Flatten Binary Tree to Linked List Populating Next Right ...

    dangdang和smartstruts2.rar

    public List<User> query(String email) throws Exception; 第七步:写接口的实现类 8、写一个struts.xml 包含use.xml 1)跳转到 /user/register_form.jsp <result name="form">/user/register_form.jsp ...

    red5连接池

    final List l = t.query("SELECT * FROM jt_employee", new RowMapper() { public Object mapRow(ResultSet rs, int rowNum) throws SQLException { MappedRow(rs.getInt(1), rs.getString(2)); } }); ...

    LeetCode最全代码

    * [Linked List](https://github.com/kamyu104/LeetCode#linked-list) * [Stack](https://github.com/kamyu104/LeetCode#stack) * [Queue](https://github.com/kamyu104/LeetCode#queue) * [Heap]...

    Python Cookbook, 2nd Edition

    Building a Dict from a List of Alternating Keys and Values Recipe 4.13. Extracting a Subset of a Dictionary Recipe 4.14. Inverting a Dictionary Recipe 4.15. Associating Multiple Values with ...

    Python Cookbook英文版

    8.9 Using dtuple for Flexible Access to Query Results 8.10 Pretty-Printing the Contents of Database Cursors 8.11 Establishing Database Connections Lazily 8.12 Accessing a JDBC Database from a ...

    BobBuilder_app

    Pages in a b+tree are usually implemented as a list or array of child pointers and so while finding and inserting a value is a O(log k) operation the process actually has to move children around in ...

    Google C++ Style Guide(Google C++编程规范)高清PDF

    Table of Contents Header Files The #define Guard Header File Dependencies Inline Functions The -inl.h Files Function Parameter Ordering Names and Order of Includes Scoping Namespaces Nested Classes ...

Global site tag (gtag.js) - Google Analytics