hibernate 二种方法来select 的不同之处
get: 一执行就会发出sql来查询,如果打不到数则返回一个null
load : 执行后生成代理的对象,不发sql语句,当要用到查到的对象时才发sql
如果找不到相应的数据,则会抛异常!!
get 与load 查询后的状态都是presistent的状态。
//查询一条记录
public void testGetMehod() {
Session session = null;
try {
session = HibernateUtils.getSession();
session.beginTransaction();
//presistent
User user = (User)session.get(User.class, "4028819a204b85a601204b85a7f60001");
System.out.println("user' name "+user.getName());
user.setName("新数据");
session.getTransaction().commit();
}catch(Exception e) {
session.getTransaction().rollback();
e.printStackTrace();
}finally {
HibernateUtils.closeSession(session);
}
}
//查询一条记录
public void testLoadMehod() {
Session session = null;
try {
session = HibernateUtils.getSession();
session.beginTransaction();
//presistent
User user = (User)session.load(User.class, "4028819a204b85dfa601204b85a7f60001");
System.out.println("user' name "+user.getName());
user.setName("新数据");
session.getTransaction().commit();
}catch(Exception e) {
session.getTransaction().rollback();
e.printStackTrace();
}finally {
HibernateUtils.closeSession(session);
}
}
分享到:
相关推荐
### Hibernate中的Get与Load方法详解 #### 概述 在Hibernate框架中,`get`与`load`方法都是用于从数据库加载实体对象的常用手段。然而,这两种方法在实现细节上有着本质的区别,这些差异主要体现在对缓存的利用、...
在Java的持久化框架Hibernate中,`get`和`load`方法都是用于从数据库中获取对象,但它们之间存在一些重要的区别。理解这些差异对于优化应用程序的性能和避免潜在问题至关重要。 首先,`get`方法是直接从数据库中...
在Java的持久化框架Hibernate中,`get`和`load`方法都是用于从数据库中获取对象,但它们之间存在一些重要的区别。理解这些差异对于优化应用程序的性能和避免潜在问题至关重要。 首先,让我们来深入了解一下`get`...
`load`和`get`方法是Hibernate中用于检索实体的两种主要方式,它们都是从Session接口中调用,但有明显的区别和各自的适用场景。 1. `load`方法: - `load`方法主要用于根据主键加载对象,它返回一个代理对象,而...
标签“hibernate中get和lo”暗示了标签可能被意外截断,但我们可以推断完整标签可能是“hibernate中get和load的区别”。 在实际开发中,选择使用`get`还是`load`取决于具体需求。如果需要立即从数据库中获取对象,...
本篇文章将详细解析Hibernate中的三种主要查询方式——HQL(Hibernate Query Language)、Criteria API和Query API,并着重讨论`load()`与`get()`方法的区别。 一、HQL查询 Hibernate Query Language(HQL)是...
在Hibernate中,`Session`接口提供了`get`和`load`两种方法来获取数据库中的实体对象。 1. **get** 方法:尝试从当前Session的缓存中获取指定ID对应的实体对象;如果缓存中不存在,则直接执行SQL查询语句从数据库中...
首先,让我们关注`get`和`load`的区别: 1. **返回结果对比**: - `load`方法如果找不到对应的记录,会抛出`org.hibernate.ObjectNotFoundException`异常。这是因为`load`方法假设给定的ID肯定在数据库中存在,它...
博文链接:https://log-cd.iteye.com/blog/205166
在Hibernate ORM框架中,获取持久化对象的两种主要方法是`get()`和`load()`。它们都是用来根据主键ID查询数据库中的实体对象,但两者在执行机制和返回结果上有显著的区别。 1. `get()`方法 当调用`session.get()`...
Hibernate中Session.get()方法和load()方法是两个常用的数据访问方法,但它们之间有着本质的区别。 首先,从返回值上看,get()方法直接返回实体类,如果查不到数据则返回null。load()方法则返回一个实体代理对象,...
在Hibernate框架中,`load()`和`get()`都是用于从数据库中检索对象的方法,但它们在功能和行为上存在显著的差异。理解这些差异对于优化应用程序的性能和处理潜在异常至关重要。 首先,`load()`方法执行延迟加载策略...
本文详细介绍了 Hibernate 提供的各种查询方式,包括 `load`、`get`、`createQuery` 和 `find` 等方法,并重点阐述了 HQL 查询的基本用法和高级技巧。通过本文的学习,读者可以掌握 Hibernate 的基本查询操作,并能...
- `findById(id)`: 根据ID查询单个对象,利用`Session`的`get()`或`load()`方法。 - `findByExample(entity)`: 基于实例属性的查询,`Session`的`createCriteria()`可以接受对象实例,根据其属性构建查询条件。 ...
2. 通过标识符检索:使用 session.get() 方法或 session.load() 方法根据标识符检索对象。 3. 使用 HQL 检索对象:使用 Hibernate 查询语言 HQL 检索对象。 4. 使用 Hibernate 条件 API:提供了类型安全的面向对象的...
在Hibernate框架中,`get` 和 `load` 都是用来从数据库中获取对象的方法,但它们之间存在一些关键差异。了解这些差异对于高效地使用Hibernate至关重要。 首先,让我们来看看这两个方法的基本用法: 1. `get` 方法...
1. **主键查询**:通过`get()`或`load()`方法根据主键获取对象。`get()`方法会立即从数据库中获取数据,而`load()`方法则返回代理对象,直到实际访问属性时才加载数据。 2. **对象导航查询**:利用对象间的关联关系...