`
MAYDAY_2014
  • 浏览: 6257 次
  • 性别: Icon_minigender_1
社区版块
存档分类
最新评论

hibernate中get()和load()方法的区别

阅读更多
-------android培训、java培训、期待与您交流! ----------
get()方法和load()方法的区别主要在于对二级缓存的使用上。 load()方法会使用二级缓存,而get()方法在一级缓存没有找到会直接查询数据库,不会去二级缓存中查找。 get():如果在数据库中没有记录会返回空,get()无论如何都会返回数据. load():如果数据库中没有记录会抛出异常,如果有数据返回的是一个代理对象。 list和iterator()方法之间的区别:(N+1?) list()方法在执行时,直接运行查询结果所需要的查询语句。 iterator()方法则是先执行得到对象ID的查询,然后在根据每个ID值去取得所要查询的对象。 因此:对于list()方式的查询通常只会执行一个SQL语句,而对于iterator()方法的查询则可能需要执行N+1条SQL语句(N为结果集中的记录数). 结果集的处理方法不同: list()方法会一次获的所有的结果集对象,而且他会依据查询的结果初始化所有的结果集对象。如果在结果集非常庞大的时候会占据非常多的内存,甚至会造成内存溢出的情况发生。 iterator()方法在执行时不会一次初始化所有的对象,而是根据对结果集的访问情况来初始化对象。一次在访问中可以控制缓存中对象的数量,以避免占用过多的缓存,导致内存溢出情况的发生。 HQL:HQL是一种面向对象的查询语言,HQL的操作对象是类、实例和属性等。 SQL:sql的操作对象是数据表和列等数据对象。 Hql是完全面向对象的查询语言,因此可以支持继承和多态等特征。 HQL查询依赖于Query类,每个Query实例对应一个查询对象。 定参数的功能,Query 接口才是真正的HQL查询接口。 //创建一个Query 对象

Java代码:
1.   Query query = session.createQuery ("from Customer as c where c.name=:customerName and c.age=:customerAge");  
动态绑定参数:
query.setString("customerName","Tom");   
query.setInteger("customerAge",21);  
执行查询语句,返回结果:
List result = query.list();
分享到:
评论

相关推荐

    hibernate中get和load方法的区别

    在Java的持久化框架Hibernate中,`get`和`load`方法都是用于从数据库中获取对象,但它们之间存在一些重要的区别。理解这些差异对于优化应用程序的性能和避免潜在问题至关重要。 首先,`get`方法是直接从数据库中...

    Hibernate的get和load方法的区别

    在Java的持久化框架Hibernate中,`get`和`load`方法都是用于从数据库中获取对象,但它们之间存在一些重要的区别。理解这些差异对于优化应用程序的性能和避免潜在问题至关重要。 首先,让我们来深入了解一下`get`...

    hibernate get load区别

    ### Hibernate中的Get与Load方法详解 #### 概述 在Hibernate框架中,`get`与`load`方法都是用于从数据库加载实体对象的常用手段。然而,这两种方法在实现细节上有着本质的区别,这些差异主要体现在对缓存的利用、...

    hibernate中get和load的区别共5页.pdf

    在Java的持久化框架Hibernate中,`get`和`load`是两个常用的方法,它们都是用来从数据库中获取对象的。然而,它们在工作原理和使用场景上存在一些关键的区别,这些区别对于理解和优化Hibernate应用至关重要。 首先...

    Hibernate中get和load方法的区别以及close(),clear()、evict()等的区别

    在Hibernate框架中,Session是与数据库交互的主要接口,它提供了...了解这些概念和方法的区别对于高效地使用Hibernate进行数据库操作至关重要,可以根据具体场景选择合适的方法来优化应用程序的性能和数据处理逻辑。

    Hibernate查询 load与get的区别及其它查询测试

    `load`和`get`方法是Hibernate中用于检索实体的两种主要方式,它们都是从Session接口中调用,但有明显的区别和各自的适用场景。 1. `load`方法: - `load`方法主要用于根据主键加载对象,它返回一个代理对象,而...

    hibernate 三种 查询 方式 load与get的区别

    本篇文章将详细解析Hibernate中的三种主要查询方式——HQL(Hibernate Query Language)、Criteria API和Query API,并着重讨论`load()`与`get()`方法的区别。 一、HQL查询 Hibernate Query Language(HQL)是...

    session的get与load比较

    在Hibernate中,`Session`接口提供了`get`和`load`两种方法来获取数据库中的实体对象。 1. **get** 方法:尝试从当前Session的缓存中获取指定ID对应的实体对象;如果缓存中不存在,则直接执行SQL查询语句从数据库中...

    Hibernate中get()和load()的区别.docx

    在Hibernate ORM框架中,获取持久化对象的两种主要方法是`get()`和`load()`。它们都是用来根据主键ID查询数据库中的实体对象,但两者在执行机制和返回结果上有显著的区别。 1. `get()`方法 当调用`session.get()`...

    Hibernate中Session.get()方法和load()方法的详细比较

    Hibernate中Session.get()方法和load()方法是两个常用的数据访问方法,但它们之间有着本质的区别。 首先,从返回值上看,get()方法直接返回实体类,如果查不到数据则返回null。load()方法则返回一个实体代理对象,...

    Hibernate中load方法与get方法的区别

    在Hibernate框架中,`load()`和`get()`都是用于从数据库中检索对象的方法,但它们在功能和行为上存在显著的差异。理解这些差异对于优化应用程序的性能和处理潜在异常至关重要。 首先,`load()`方法执行延迟加载策略...

    hibernate_reference中文版和Hibernate中文手册

    5. CRUD操作:Hibernate提供了便捷的方法来完成创建(save()、persist())、读取(get()、load()、query())、更新(update()、merge())和删除(delete())对象的操作。其中,HQL(Hibernate Query Language)和...

    Hibernate方法总结

    以下是对标题和描述中提到的HibernateTemplate方法的详细总结: A. `get` 和 `load`: 这两个方法都是用于从数据库中获取单个对象。`get`方法直接返回一个实体对象,如果数据库中没有找到对应ID的数据,则返回null...

    hibernate中文文档 HTML格式

    例如,使用`save()`或`persist()`方法创建新对象,`load()`或`get()`方法读取对象,`update()`或`merge()`方法更新对象,以及`delete()`方法删除对象。 3. 查询语言(HQL):Hibernate查询语言,类似于SQL,但面向...

    hibernate get/load/saveOrUpdate/statistics

    博文链接:https://log-cd.iteye.com/blog/205166

    Hibernate中文Api最新参考文档

    例如,使用`save()`或`saveOrUpdate()`方法保存实体,`load()`或`get()`方法获取实体,`update()`或`merge()`更新实体,以及`delete()`方法删除实体。 事务处理是数据库操作的重要部分,Hibernate通过`Transaction`...

    hibernate难点重点笔记

    本文将针对Hibernate中的几个重要概念进行详细讲解,包括主键生成策略、get()与load()的区别以及二级缓存的使用。 首先,探讨的是Hibernate中的主键生成策略。在Hibernate中,主键的生成主要有三种方式:uuid、...

Global site tag (gtag.js) - Google Analytics