`
ghsea
  • 浏览: 111903 次
  • 性别: Icon_minigender_1
  • 来自: 武汉
社区版块
存档分类
最新评论

load()和get()

阅读更多
1.load()前提是确信被load的对象在数据库中存在,否则会抛出org.hibernate.ObjectNotFoundException: No row with the given identifier exists
 
  1. Session session2=HibernateUtil.getSession();  
  2. Customer c2=(Customer)session2.get(Customer.classnew Long(100));  
  3. System.out.println("Customer2 name:"+c2.getName());  
     ID为100的数据项在数据库中是不存在的,故而抛出了异常。“You should not use this method to determine if an instance exists (use get() instead). Use this only to retrieve an instance that you assume exists, where non-existence would be an actual error.”这个异常是不可恢复的,可以说这么用load()一种编程错误。


2.get()和load()都是返回指定ID的对象,但是有很大不同,当指定的ID的数据项不在数据库中时,最多只是抛出NullPointerException,抛出这个异常是可以僻免的
 
  1. Session session2=HibernateUtil.getSession();  
  2. Customer c2=(Customer)session2.get(Customer.classnew Long(100));  
  3. System.out.println("Customer2 name:"+c2.getName());  
    上面这段代码执行后会抛出NullPointerException,因为c2是null,是不能被调用的,应该像下面这样处理
 
  1. Session session2=HibernateUtil.getSession();  
  2. Customer c2=(Customer)session2.get(Customer.classnew Long(100));  
  3.  if(c2==null){  
  4.        System.out.print("null");  
  5.  }  
  6. else  
  7.        System.out.println("Customer2 name:"+c2.getName());  
      上面这段代码才是判断某个对象对应的数据在数据库中是否存在的正确方式!
分享到:
评论

相关推荐

    hibernate中get和load方法的区别

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

    hibernate get load区别

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

    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方法的区别

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

    jquery-get-post-load 方法

    本文将详细介绍 jQuery 中 GET、POST 和 LOAD 方法的使用方法及其应用场景。 #### 二、GET方法 GET 方法通常用于从服务器请求数据,而不会更改服务器上的数据。它是一种安全的方法,因为数据是通过 URL 传递的,...

    hibernate完全讲解实例演示

    - `testReadByGetMethod1` 和 `testReadByGetMethod2` 方法对比了 Load 和 Get 方法的不同行为。前者使用 Load 方法加载对象,后者使用 Get 方法,展示了当 ID 不存在时的行为差异。 理解 Hibernate 中的 Session ...

    JAVAEE试题(含答案).docx

    3. Hibernate框架中的session的get()和load()方法:get方法和load方法都是用于从数据库中加载数据,但它们之间存在一定的区别。get方法先到缓存中去查,如果没有就到数据库中去查,而load方法则支持延迟加载。 4. ...

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

    标签“hibernate中get和lo”暗示了标签可能被意外截断,但我们可以推断完整标签可能是“hibernate中get和load的区别”。 在实际开发中,选择使用`get`还是`load`取决于具体需求。如果需要立即从数据库中获取对象,...

    JAVAEE试题(含答案).pdf

    3. Hibernate 框架中 session 的 get() 和 load() 方法不同,get 先到缓存中去查,如果没有就到 DB 中去查,而 load 在默认情况下支持延迟加载。 4. 部署 Servlet 时,在 web.xml 中需要配置 servlet 和 servlet-...

    J2EE考试题目及答案定义.pdf

    本资源摘要信息是关于J2EE考试题目及答案定义的知识点总结,涵盖了J2EE的四层模型、对象持久化、ORMapping、Hibernate实现对象持久化、序列化、SessionFactory、Session、load和get方法、Action接受用户参数输入、...

    《Java-Web应用开发基础》综合练习4.docx

    BeanWrapper是一个Bean包装器,用于提供统一的get和set方法。 11. JSP和Servlet的区别、共同点、应用范围 JSP和Servlet是两种不同的Java技术,JSP用于生成动态的Web页面,而Servlet用于处理请求和响应。JSP和...

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

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

    Ajax与jquery相结合实现的无数新验证用户之load()get方法

    在现代Web开发中,Ajax(异步...通过load()、$.get()和$.post()等方法,我们可以轻松实现实时用户验证,提供更加流畅的用户体验。在实际开发中,根据需求选择合适的方法,同时注意数据安全和用户体验,是至关重要的。

    Hibernate4学习笔记1

    **Hibernate4 学习笔记** Hibernate4 是一个流行的开源对象关系映射(ORM)框架,它简化了Java...在实际开发中,合理配置和使用二级缓存、选择合适的查询方法以及理解load和get的区别,都能显著提升数据库操作的效率。

    hibernate面试题

    选项D正确,load和get方法有区别,load会先查找缓存,若找不到则抛出异常;get也是先查缓存,若未找到则返回null。 13. **关系映射** 选项C正确,一对多关系可以用Set、List或Map映射,而多对一关系通常用Set映射...

    hibernate面试

    本文将深入探讨Hibernate的相关知识点,包括优化策略、多表查询处理、Session的load和get方法的区别,以及Hibernate的主键生成机制。 1. **数据库查询优化** - **建立索引**:在经常用于查询的列上建立索引可以...

    java框架方面面试题

    接下来是关于Hibernate中Session的load和get方法的区别。load方法设计用来获取数据,如果没有找到符合条件的数据记录,会抛出异常;而get方法会返回null,表示没有找到数据。load方法返回的是一个代理对象,而get...

Global site tag (gtag.js) - Google Analytics