Hibernate 与 Spring 集成

2024 年 8 月 29 日 | 4 分钟阅读

我们可以简单地将 hibernate 应用程序与 spring 应用程序集成

在 hibernate 框架中,我们在 hibernate.cfg.xml 文件中提供所有数据库信息。

但是,如果我们要将 hibernate 应用程序与 spring 集成,则不需要创建 hibernate.cfg.xml 文件。我们可以在 applicationContext.xml 文件中提供所有信息。


Spring 框架与 hibernate 的优势

Spring 框架提供了 HibernateTemplate 类,因此您不需要遵循许多步骤,例如创建 Configuration、BuildSessionFactory、Session、开始和提交事务等。

因此,它节省了大量代码

在不使用 spring 的情况下理解问题

让我们通过下面给出的 hibernate 代码来理解它

正如您在单独的 hibernate 代码中看到的那样,您必须遵循许多步骤。

使用 Spring Framework 的 HibernateTemplate 类的解决方案

现在,您不需要遵循许多步骤。您可以简单地编写这个


HibernateTemplate 类的方法

让我们看一下 HibernateTemplate 类的常用方法列表。

编号。方法描述
1)void persist(Object entity)持久化给定的对象。
2)Serializable save(Object entity)持久化给定的对象并返回 id。
3)void saveOrUpdate(Object entity)持久化或更新给定的对象。如果找到 id,则更新记录,否则保存记录。
4)void update(Object entity)更新给定的对象。
5)void delete(Object entity)根据 id 删除给定的对象。
6)Object get(Class entityClass, Serializable id)根据给定的 id 返回持久化对象。
7)Object load(Class entityClass, Serializable id)根据给定的 id 返回持久化对象。
8)List loadAll(Class entityClass)返回所有持久化对象。

步骤:

让我们看看 hibernate 和 spring 集成的简单步骤是什么

  1. 在数据库中创建表 这是可选的。
  2. 创建 applicationContext.xml 文件 它包含 DataSource、SessionFactory 等信息。
  3. 创建 Employee.java 文件 它是持久化类
  4. 创建 employee.hbm.xml 文件 它是映射文件。
  5. 创建 EmployeeDao.java 文件 它是使用 HibernateTemplate 的 dao 类。
  6. 创建 InsertTest.java 文件 它调用 EmployeeDao 类的方法。

Hibernate 和 spring 集成的示例

在此示例中,我们将把 hibernate 应用程序与 spring 集成。让我们看看 spring 和 hibernate 示例的 目录结构

spring hibernate example with directory structure
1) 在数据库中创建表

在此示例中,我们使用 Oracle 作为数据库,但您可以使用任何数据库。让我们在 oracle 数据库中创建表


2) Employee.java

这是一个简单的 POJO 类。在这里,它用作 hibernate 的持久化类。


3) employee.hbm.xml

此映射文件包含持久化类的所有信息。


4) EmployeeDao.java

它是一个 java 类,它使用 HibernateTemplate 类方法来持久化 Employee 类的对象。


5) applicationContext.xml

在此文件中,我们在 BasicDataSource 对象中提供了数据库的所有信息。此对象用于 LocalSessionFactoryBean 类对象中,其中包含其他一些信息,例如 mappingResources 和 hibernateProperties。LocalSessionFactoryBean 类的对象用于 HibernateTemplate 类。让我们看看 applicationContext.xml 文件的代码。

hibernate template

文件:applicationContext.xml


6) InsertTest.java

此类使用 EmployeeDao 类对象,并通过传递 Employee 类的对象来调用其 saveEmployee 方法。

现在,如果您在 oracle 数据库中看到表,则记录已成功插入。



启用自动表创建,显示 sql 查询等。

您可以在 applicationContext.xml 文件中启用许多 hibernate 属性,例如通过 hbm2ddl.auto 自动创建表等。让我们看看代码

如果您编写此代码,则无需创建表,因为将自动创建表。