JavaSSH面试精华: Hibernate ORM、关联与缓存

需积分: 9 4 下载量 163 浏览量 更新于2024-09-18 收藏 101KB DOC 举报
Java SSH (Spring, Struts, Hibernate) 是一套流行的Java企业级开发框架组合,它们在面试中常被提问。这里我们主要关注Hibernate的面试要点: 1. Hibernate工作原理: Hibernate 是一个ORM(Object-Relational Mapping)框架,它通过将Java对象与数据库表进行映射,实现了面向对象操作数据库。它的核心流程包括: - 读取并解析配置文件:配置文件中定义了持久化策略和数据库连接信息。 - 创建SessionFactory:用于管理所有Session对象的工厂,是应用程序与数据库交互的主要接口。 - 打开Session:一个会话对象代表一次数据库交互,提供事务处理能力。 - 操作数据:包括持久化(保存对象到数据库)、查询和更新等操作。 - 提交事务:确保数据一致性,完成后回滚或提交事务。 - 关闭Session:释放数据库资源,结束本次交互。 - 关闭SessionFactory:关闭所有打开的Session并清理缓存。 2. Hibernate的优点: - 数据访问层抽象:封装了JDBC,减少重复代码,使开发更专注于业务逻辑。 - ORM框架:简化DAO层编程,减少SQL编写的工作量。 - 性能与灵活性:轻量级框架,支持多种数据库,处理复杂关系。 3. 延迟加载:避免在加载对象时立即查询所有关联数据,提高性能,只有在真正需要时才加载相关数据。 4. Hibernate关联关系: - 一对多(ManyToOne)、多对多(ManyToMany)、一对一(OneToOne)关系,描述对象间的依赖关系。 5. 缓存机制: - 一级缓存:默认存在于每个Session内部,会话关闭后自动清空。 - 二级缓存:独立于Session,可跨多个Session共享,但需手动配置启用。 6. 查询方式: - 本地SQL查询:直接使用原生SQL语句。 - Criteria API:基于HQL(Hibernate Query Language)的高级查询API,提供灵活的条件查询。 - HQL:类似SQL的查询语言,用于构建动态查询。 7. Hibernate优化技巧: - 使用双向一对多代替单向,避免懒加载带来的性能问题。 - 尽可能使用多对一,而不是一对一,以减少冗余数据。 8. Struts框架的价值: - 提供MVC(Model-View-Controller)架构,分离关注点,使得代码更清晰易维护。 - 避免开发者重复处理共性问题,专注于业务实现。 在面试中,面试者可能会围绕这些知识点进行深入讨论,了解候选人的理解和实践经验。掌握这些概念和应用对于Java开发者的技能栈至关重要。