Hibernate面试必备:工作原理与关键概念

需积分: 0 0 下载量 23 浏览量 更新于2024-07-23 收藏 42KB DOCX 举报
"这篇资料是一份关于Hibernate面试题的集合,涵盖了Hibernate的工作原理、持久化概念、关系-对象映射、Hibernate配置文件内容、HQL语句及其使用、级联操作以及Hibernate的基本概念和功能。" 详细说明: 1. Hibernate工作原理: Hibernate是一个开源的对象关系映射(ORM)框架,它的主要作用是简化Java应用与数据库之间的交互。在工作流程中,Hibernate首先读取并解析配置文件,然后解析映射信息来创建SessionFactory。SessionFactory是线程安全的,负责管理Session。打开Session后,可以创建事务Transaction,进行持久化操作,如增删改查。完成操作后提交事务,关闭Session,最后关闭SessionFactory。 2. 持久化概念: 持久化是指将对象的状态保存到持久性存储介质(如数据库、文件或网络传输)中,以便后续能够恢复和使用。题目中的选项中,B是将程序数据从数据库读出,属于持久化;D是将程序数据保存为文件,也属于持久化。而A和C涉及的字符串转换和配置信息读取并不符合持久化的定义。 3. 关系-对象映射: Hibernate通过配置文件(如.hbm.xml文件)实现Java对象与数据库表之间的映射。映射信息包括程序类名到表名、实体属性名到字段名以及属性类型到字段类型的映射。选项A提到的程序包名到数据库库名的映射,通常不是标准的映射信息。 4. Hibernate配置文件: Hibernate的配置文件(如hibernate.cfg.xml)包含了数据库连接信息(如URL、用户名、密码)、数据库类型、日志设置(如show_sql参数)等。而数据库表和实体的映射信息通常放在单独的映射文件中。 5. HQL(Hibernate Query Language): HQL是Hibernate的查询语言,它面向对象,支持类似于SQL的查询操作。HQL语句可以用于查询、更新和删除,例如:`From Account` 是一个有效的查询。错误的示例是 `Select * from account`,因为HQL中的表名应与实体类名匹配,首字母大写。 6. 级联操作(Cascade): Hibernate中的级联操作允许将对一个实体的操作(如删除)影响到与之关联的其他实体。cascade属性的取值包括all、save-update、delete等,不包括save。 7. Hibernate的功能与特性: Hibernate是ORM框架,属于数据持久层,实现了对象关系映射,使得开发人员可以使用面向对象的方式来操作数据库。它依赖于JDBC,但提供了更高级别的抽象,减少了手动编写SQL的需求。Load和Get方法都是用来获取对象的,但Load返回的是代理对象,而Get直接返回实际对象。 8. Hibernate的使用注意事项: HQL查询中的select子句不区分大小写,支持统计函数和只查询部分属性。游离状态是对象不再与Session关联的状态,从持久化状态转变为游离状态可以通过关闭Session或者显式地detach对象。 总结,这份面试题集涵盖了Hibernate的核心概念和使用,包括其工作流程、持久化操作、映射机制、配置管理、查询语言HQL以及高级特性,是理解和掌握Hibernate的宝贵参考资料。