zoukankan      html  css  js  c++  java
  • hibernate中hql语句中list和iterate区别

    1.使用list()方法获取查询结果,每次发出一条语句,获取全部数据。
    2.使用iterate()方法获取查询结果,先发出一条SQL语句用来查询满足条件数据的id,然后依次按照这些id查询记录,也就是要执行N+1条SQL语句(N为符合条件的记录数)


    两次执行list()方法,每次执行都是发出一条SQL语句,查询所有数据。
    下面看看两次执行iterate()方法的输出情况
    两次执行iterate()方法,第一次执行时发出了N+1条SQL语句,而第二次执行,则只发出一套SQL语句,与先执行list()方法后执行iterate()方法时一致。这种情况产生的原因是因为Hibernate的缓存
    1.list()方法将不会在缓存中读取数据,它总是一次性的从数据库中直接查询符合条件的数据,同时将获取的数据写入缓存。
    2.iterate()方法则是获取了符合条件的数据的id后,首先根据id在缓存中寻找符合条件的数据,若缓存中无符合条件的数据,再到数据库中查询

  • 相关阅读:
    冲刺博客 五
    冲刺博客 四
    冲刺第一天
    软件工程概论第十周学习进度
    软件工程概论第九周学习进度
    找水王
    软件工程概论第八周学习进度
    软件工程概论第七周学习进度
    四则运算最终版
    二维数组最大值
  • 原文地址:https://www.cnblogs.com/Xuesk/p/6859665.html
Copyright © 2011-2022 走看看