深入理解Hibernate:一级二级缓存详解

需积分: 1 1 下载量 75 浏览量 更新于2024-07-18 收藏 21.27MB DOC 举报
"这篇笔记详述了作者在学习Hibernate框架时的笔记,涵盖了Hibernate的基本配置、数据库连接设置、SQL输出以及对象映射等关键概念。" 在Java开发中,Hibernate是一个非常流行的对象关系映射(ORM)框架,它极大地简化了数据库操作。这篇笔记主要涉及以下Hibernate知识点: 1. **Hibernate配置**:`hibernate.cfg.xml`是Hibernate的主要配置文件,它定义了与数据库交互的相关参数。在这个例子中,配置文件包含了数据库连接的详细信息,如用户名(root)、密码(123456)、驱动类(`com.mysql.jdbc.Driver`)、URL(`jdbc:mysql://localhost:3306/hibernate`)以及方言(`org.hibernate.dialect.MySQL5InnoDBDialect`),用于适配MySQL数据库的InnoDB存储引擎。`show_sql`和`format_sql`属性分别控制是否显示和格式化运行时的SQL语句,`hibernate.hbm2ddl`属性则设为`update`,意味着在启动应用时会自动更新数据表结构。 2. **对象映射**:Hibernate通过`hibernate-mapping`标签进行对象-关系映射。在`Custumer.hbm.xml`文件中,`class`标签定义了映射的Java类(`com.iotek.Customer`)和对应的数据库表(`Customer`)。`id`标签代表主键,这里使用`native`生成器,意味着主键值由数据库自动生成。`property`标签则定义了类中的属性及其对应的数据库列。 3. **持久化实体类**:与`Custumer.hbm.xml`文件中定义的映射相对应,`com.iotek.Customer`应该是一个Java类,包含与XML文件中`property`标签对应的方法和字段。比如,类可能有一个名为`title`的属性,类型为`String`,对应的数据库列名为`title`。 4. **一级缓存和二级缓存**:Hibernate的一级缓存是Session级别的,它是默认开启的,用于存储Session内的所有对象。二级缓存则是SessionFactory级别的,可以跨Session共享,但需要额外配置和第三方库支持,如EhCache或Infinispan。笔记中虽然没有详细展开,但提到对一级和二级缓存的讲解,这部分内容通常包括缓存的启用、配置、生命周期管理和性能优化。 5. **操作数据库**:通过Hibernate,开发者可以使用Criteria API、HQL(Hibernate查询语言)或JPQL(Java Persistence Query Language)来执行查询、更新和删除操作,这些API提供了更加面向对象的方式来处理数据库事务。 这篇笔记的读者可以从中了解到Hibernate的基本使用方法,为进一步深入学习Hibernate的高级特性,如懒加载、关联映射、事务管理、性能调优等奠定基础。对于初学者,理解并实践这些配置和映射概念是掌握Hibernate的关键步骤。