`

Hibernate面试题总结

 
阅读更多

       Hibernate工作原理及为什么要用?

原理:

1. 读取并解析配置文件

2. 读取并解析映射信息,创建SessionFactory

3. 打开Sesssion

4. 创建事务Transation

5. 持久化操作

6. 提交事务

7. 关闭Session

8. 关闭SesstionFactory

 

为什么要用:

 

1. JDBC访问数据库的代码做了封装,大大简化了数据访问层繁琐的重复性代码。

2. Hibernate是一个基于JDBC的主流持久化框架,是一个优秀的ORM实现。他很大程度的简化DAO层的编码工作

3. hibernate使用Java反射机制,而不是字节码增强程序来实现透明性。

4. hibernate的性能非常好,因为它是个轻量级框架。映射的灵活性很出色。它支持各种关系数据库,从一对一到多对多的各种复杂关系。

 

2. Hibernate是如何延迟加载?

1. Hibernate2延迟加载实现:a)实体对象 b)集合(Collection

2. Hibernate3 提供了属性的延迟加载功能

Hibernate在查询数据的时候,数据并没有存在与内存中,当程序真正对数据的操作时,对象才存在与内存中,就实现了延迟加载,他节省了服务器的内存开销,从而提高了服务器的性能。

3. Hibernate中怎样实现类之间的关系?(如:一对多、多对多的关系)

类与类之间的关系主要体现在表与表之间的关系进行操作,它们都市对对象进行操作,我们程序中把所有的表与类都映射在一起,它们通过配置文件中的many-to-oneone-to-manymany-to-many

4. 说下Hibernate的缓存机制

1. 内部缓存存在Hibernate中又叫一级缓存,属于应用事物级缓存

2. 二级缓存:

a) 应用及缓存

b) 分布式缓存

条件:数据不会被第三方修改、数据大小在可接受范围、数据更新频率低、同一数据被系统频繁使用、非 关键数据

c) 第三方缓存的实现

5. Hibernate的查询方式

SqlCriteria,object comptosition

Hql

1、 属性查询

2、 参数查询、命名参数查询

3、 关联查询

4、 分页查询

5、 统计函数

 

6. 如何优化Hibernate

1. 使用双向一对多关联,不使用单向一对多

2. 灵活使用单向一对多关联

3. 不用一对一,用多对一取代

4. 配置对象缓存,不使用集合缓存

5. 一对多集合使用Bag,多对多集合使用Set

6. 继承类使用显式多态

7. 表字段要少,表关联不要怕多,有二级缓存撑腰

分享到:
评论

相关推荐

    hibernate面试题总结

    Hibernate是Java领域中一款流行的持久...以上就是Hibernate面试中常见的问题和答案,涵盖了基本概念、缓存策略、查询方式以及事务和数据访问等方面的知识点。理解并掌握这些内容对于深入学习和使用Hibernate至关重要。

    Struts_Spring_Hibernate面试题总结

    这篇面试题总结主要涉及Servlet的基础知识,包括其生命周期、工作原理以及与Struts、Spring、Hibernate的关系。 1. Servlet生命周期: - 初始化阶段:Servlet容器在接收到web应用部署描述符(web.xml)中的`...

    2022年StrutsSpringHibernate面试题总结.docx

    【Struts工作原理】 Struts是一个开源的MVC框架,它的主要作用...Spring作为IoC/DI容器,可以管理和注入Struts的Action以及Hibernate的SessionFactory,提供事务管理、AOP等功能,进一步提升了应用的灵活性和可测试性。

    常见hibernate面试题.doc

    ### 常见Hibernate面试题知识点详解 #### 1. Hibernate查询数据的方式 - **导航对象图查询**:这是最基本的查询方式之一,适用于查询对象之间的关联关系。通过已知对象来导航到其他对象,比如通过一个`User`对象...

    SSH(struts+spring+hibernate)面试题总结

    以下是对SSH面试题中涉及的一些核心知识点的详细解释: 1. **Hibernate 工作原理** Hibernate 的工作流程主要包括: - 读取`hibernate.cfg.xml`配置文件,创建`Configuration`实例,加载类映射信息。 - `...

    Hibernate大总结/Hibernate面试题大全

    以上总结了Hibernate的一些核心概念和面试中可能遇到的关键知识点。了解这些概念有助于更好地掌握Hibernate框架的使用,以及如何高效地利用Hibernate进行数据库操作。此外,对于面试者而言,熟悉这些概念也能帮助...

    Hibernate常见面试题

    这些知识点涵盖了常见的面试问题,可以帮助准备面试或深入理解Hibernate技术的人士更好地掌握该领域的内容。 ### Hibernate的检索方式 1. **导航对象图检索**:通过已加载的对象来访问与其关联的对象,这种检索...

    hibernate面试题

    ### Hibernate面试题详解 #### 1. Hibernate中的关系类型 题目描述了一种关系选择题,但实际给出的信息并不清晰。不过,根据选项推测,此题意在考察Hibernate中实体间的关系类型。 - **一对一 (One-to-One)** - *...

    hibernate部分面试题,自己总结的哦。

    hibernate部分面试题,自己总结的哦。有些是应付考试用的,有的是工作需要,有的是工作和面试都需要的,所以要分清楚后掌握。以及掌握的程度。

    最新Struts和Hibernate和Spring经典面试题

    以下是对 Struts、Hibernate 和 Spring 的经典面试题的总结,涵盖了这些框架的工作机制、优点、缓存机制、查询方式、优化方法等知识点。 Hibernate 1. Hibernate 工作原理及为什么要用? Hibernate 工作原理包括...

    java面试题总结资料

    这份"java面试题总结资料"涵盖了多个Java核心领域的关键知识点,包括但不限于: 1. **基础语法**:理解基本的数据类型(如整型、浮点型、字符型和布尔型),变量的声明与使用,以及运算符的优先级。同时,要熟悉...

    阿里面试题总结

    根据给定文件的信息,我们可以将其中涉及的知识点归纳总结如下: ### 一、项目经验 - **面试官关注点**:面试者对于自己所参与项目的理解程度,包括项目的背景、功能、技术...希望以上总结能够帮助你更好地准备面试。

    Struts+Hibernate面试题

    总结来说,理解和掌握这三个框架的基本原理和应用场景对于Java开发者至关重要,特别是在面试中,能够清晰地阐述它们的工作流程、核心组件和优势,能够体现出开发者的技术深度和广度。在实际项目中,Struts负责控制...

    java面试题总结

    10. **框架和库**:对于有经验的开发者,面试官可能会询问Spring、MyBatis、Hibernate等框架的使用经验,以及如何进行性能优化。 以上就是Java面试中常见的知识点,对于每个部分,都需要深入理解和实践,才能在面试...

    [尚硅谷]_佟刚_Hibernate面试题分析

    在面试中关于Hibernate的问题通常考察应聘者对这一框架的理解深度以及实际应用能力。以下是根据提供的文件内容总结的知识点: 1. Hibernate的检索方式包括: - 导航对象图检索:通过对象间的关系进行数据检索。 -...

    spring+struts+Hibernate面试题

    ### Spring + Struts + Hibernate 面试题解析 #### 一、Struts 相关面试题 **1. Action 是否是线程安全的?如果不是,有什么方式可以保证 Action 的线程安全?如果是,请说明原因** - **Struts 1 中 Action 的...

    最新JAVA面试题总结之框架.docx

    ### 最新JAVA面试题总结之框架 #### Spring框架概述与核心功能 **Spring框架**是一个广泛使用的开源框架,旨在简化企业级应用的开发过程。它采用了一种分层架构,这意味着开发者可以根据具体需求选择框架中的特定...

    struts+spring+hibernate面试题

    根据给定的文件标题、描述、标签以及部分...以上内容总结了关于Struts、Spring和Hibernate框架的一些核心知识点,这些知识点对于理解和使用这三个框架非常关键,也是面试中经常会被问及的重点内容。希望对你有所帮助。

    Spring面试题总结.pdf

    标题为"Spring面试题总结"的文档是一份专门针对程序员在应聘与Spring相关职位时可能会遇到的技术面试题的整理和总结。Spring作为一个企业级Java应用框架,已经成为业界使用最为广泛的框架之一,对于期望从事Java后端...

    SSH面试题总结 开源框架

    SSH面试题总结涵盖了三个主要的开源框架:Struts、Spring和Hibernate。这些框架在Java Web开发中起着至关重要的作用,帮助开发者更高效地管理和组织应用程序的各个层面。 首先,让我们来看看Hibernate,这是一个...

Global site tag (gtag.js) - Google Analytics