Hibernate持久层框架简述(Hibernate持久层框架入门概述)
原创
一、Hibernate简介
Hibernate是一个开源的对象关系映射(ORM)框架,它对JDBC进行了封装,将Java对象映射到数据库中的表,简化了数据库操作。Hibernate的出现让Java开发者能够更加专注于业务逻辑的实现,而无需过多关注数据库层面的细节。本文将简要介绍Hibernate持久层框架的基本概念、核心组件以及入门使用方法。
二、Hibernate核心概念
Hibernate的核心概念重点包括以下几点:
- 对象关系映射(ORM):将Java对象与数据库表进行映射,让操作Java对象就像操作数据库表一样易懂。
- 持久化:将对象状态保存到数据库中,以便在程序运行过程中能够持久保存。
- 会话(Session):Hibernate操作数据库的入口,用于管理对象的持久化操作。
- 事务(Transaction):保证数据的一致性和完整性,确保多个操作要么全部成就,要么全部挫败。
- 缓存(Cache):尽大概减少损耗数据库访问效能,减少数据库访问次数。
三、Hibernate核心组件
Hibernate的核心组件包括以下几个部分:
- 配置文件(hibernate.cfg.xml):用于配置Hibernate的运行环境,如数据库连接信息、映射文件路径等。
- 映射文件(*.hbm.xml):定义Java对象与数据库表的映射关系。
- 持久化类:Java对象,与数据库表进行映射。
- 会话工厂(SessionFactory):用于创建会话(Session)对象,是单例模式。
- 会话(Session):用于执行CRUD操作,如保存、更新、删除、查询等。
- 事务(Transaction):用于管理会话中的多个操作。
四、Hibernate入门使用
下面将通过一个易懂的例子,介绍Hibernate的入门使用方法。
1. 创建项目并添加依存
首先,创建一个Java项目,然后添加Hibernate所需的依存,包括Hibernate核心包、数据库驱动包等。以下是一个典型的pom.xml配置文件:
<dependencies>
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-core</artifactId>
<version>5.4.12.Final</version>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>8.0.22</version>
</dependency>
</dependencies>
2. 配置Hibernate
在项目中创建一个名为hibernate.cfg.xml的配置文件,配置数据库连接信息、映射文件路径等。以下是一个典型的配置文件示例:
<?xml version='1.0' encoding='utf-8'?>
<!DOCTYPE hibernate-configuration PUBLIC
"-//Hibernate/Hibernate Configuration DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">
<hibernate-configuration>
<session-factory>
<property name="connection.driver_class">com.mysql.cj.jdbc.Driver</property>
<property name="connection.url">jdbc:mysql://localhost:3306/hibernate_db?serverTimezone=UTC</property>
<property name="connection.username">root</property>
<property name="connection.password">123456</property>
<property name="dialect">org.hibernate.dialect.MySQL5InnoDBDialect</property>
<property name="show_sql">true</property>
<property name="hbm2ddl.auto">update</property>
<mapping resource="com/example/domain/User.hbm.xml"/>
</session-factory>
</hibernate-configuration>
3. 创建持久化类和映射文件
创建一个名为User的持久化类,对应数据库中的user表。同时创建User.hbm.xml映射文件,定义持久化类与数据库表的映射关系。
持久化类User:
package com.example.domain;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
@Entity
public class User {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Integer id;
private String name;
private String email;
// 省略getter和setter方法
}
映射文件User.hbm.xml:
<?xml version='1.0' encoding='utf-8'?>
<!DOCTYPE hibernate-mapping PUBLIC
"-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<hibernate-mapping>
<class name="com.example.domain.User" table="user">
<id name="id" column="id">
<generator class="native"/>
</id>
<property name="name" column="name"/>
<property name="email" column="email"/>
</class>
</hibernate-mapping>
4. 编写测试代码
编写一个测试类,创建SessionFactory,然后通过Session进行数据库操作。
package com.example.test;
import com.example.domain.User;
import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.cfg.Configuration;
public class HibernateTest {
public static void main(String[] args) {
SessionFactory sessionFactory = new Configuration().configure().buildSessionFactory();
Session session = sessionFactory.openSession();
session.beginTransaction();
User user = new User();
user.setName("张三");
user.setEmail("zhangsan@example.com");
session.save(user);
session.getTransaction().commit();
session.close();
sessionFactory.close();
}
}
五、总结
Hibernate作为一个优秀的ORM框架,大大简化了Java开发者的数据库操作。通过本文的介绍,相信读者已经对Hibernate有了基本的了解。当然,Hibernate还有很多高级特性,如缓存、事务管理、相关性映射等,需要进一步学习和掌握。期待本文能够为读者的Hibernate学习之路提供一个良好的起点。