- 持久化与ORM
- 基本结构与特点
一、持久化与ORM
持久化:数据持久化一般指将内存中的数据或对象存储到可长期保存的某种介质上,以使其存活时间比创建该对象的进程时间长。
在对数据或对象持久化后,可以重新获取并能保证在没有对其进行任何改动的情况下,与持久化之前一样,
一般持久化的实现通过各种关系数据库来完成。
ORM:即对象—关系映射(Object/Relation Mapping,ORM)是为了解决面向对象与关系数据库存在的互不匹配现象而产生的技术。
业务实体在内存中表现为对象,在数据库中表现为关系数据。ORM通过使用描述对象和数据库之间映射的元数据,将程序中的对象自动持久化到关系数据库中。
本质就是将数据表映射为对象类,从一种形式转换到另外一种形式。
使用ORM技术,将在数据库中直接进行的原始操作演变为对类的属性和方法的操作,而间接更改数据表的数据。
Hibernate映射文件:其是实体对象与数据库关系表之间相互转换的重要依据,一般来说,一个映射文件对应数据库中一个关系表,关系表之间的关联关系也在映射文件中进行配置。
二、Hibernate的优点
- Hibernate是JDBC的轻量级的对象封装,它是一个独立的对象持久层框架。
- Hibernate是一个和JDBC密切相关联的框架,但是和使用它的Java程序没有任何关系,也不存在兼容性问题。
- 对JDBC的轻量级封闭,内存消耗少,运行效率高。
三、实体关系映射文件
- 类—表映射
- 主键映射
- 字段映射
四、Hibernate常用类和接口
- Configuration接口
- 负责管理Hibernate的配置信息并启动Hibernate,创建SessionFactory对象。Hibernate运行时需要获取一些底层实现的基本信息:数据库密码、URL、用户名等。
-
Configuration config = new Configuration();
- SessionFactory接口
- 应用程序从SessionFactory(会话工厂)那里获得Session(会话)实例。
- 在多个应用线程间进行共享。
- 通常情况下,整个应用只有唯一的一个会话工厂,如在应用初始化时被创建。然而,如果使用Hibernate访问多个数据库,需要对每一个数据库使用一个会话工厂。
- Session接口
- Session接口是Hibernate使用最多的接口。
- Session代表与数据库之间的一次操作,它不是线程安全的。
-
Session session = sessionFactory.openSession();
- Transaction接口
- 是Hibernate的数据库事物接口,它对底层的事物接口作了封装。
-
Transaction trans = session.beginTransaction();
- Query接口
- 允许用户在数据库上执行查询并控制查询如何执行。
- 查询语句使用HQL或者本地数据库的SQL语言编写。
-
Query query = session.createQuery("from User");
时间: 2024-10-16 15:14:39