简单学会Hibernate对象持久化(轻松掌握Hibernate对象持久化技巧)

原创
ithorizon 6个月前 (10-21) 阅读数 25 #后端开发

简洁学会Hibernate对象持久化

一、Hibernate简介

Hibernate是一个开源的对象关系映射(ORM)框架,它对JDBC进行了封装,使Java对象与数据库表之间的映射更加简洁。Hibernate的出现,大大简化了数据持久化的过程,减成本时间了开发效能。

二、Hibernate核心概念

Hibernate的核心概念包括:

  • 对象关系映射(ORM):将Java对象与数据库表进行映射
  • 会话(Session):用于管理对象的生命周期和数据库操作
  • 事务(Transaction):用于管理数据库操作的原子性
  • 缓存(Cache):用于减成本时间数据访问性能

三、Hibernate入门配置

在使用Hibernate之前,需要进行一些基本的配置。以下是Hibernate的入门配置步骤:

1. 添加Hibernate依存

在项目的pom.xml文件中添加Hibernate相关依存。

org.hibernate

hibernate-core

5.4.12.Final

2. 创建配置文件

在项目中创建一个名为hibernate.cfg.xml的配置文件,用于配置数据库连接信息、Hibernate属性等。

<?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/your_database?serverTimezone=UTC</property>

<property name="connection.username">root</property>

<property name="connection.password">password</property>

<property name="dialect">org.hibernate.dialect.MySQL5InnoDBDialect</property>

<property name="show_sql">true</property>

<property name="format_sql">true</property>

<property name="hbm2ddl.auto">update</property>

<mapping resource="com/your/package/YourEntity.hbm.xml"/>

</session-factory>

</hibernate-configuration>

3. 创建实体类和映射文件

创建一个Java实体类,例如User,并在同一包下创建对应的映射文件User.hbm.xml。

public class User {

private Integer id;

private String name;

private String email;

// 省略getter和setter方法

}

<?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.your.package.User" table="users">

<id name="id" column="id">

<generator class="native"/>

</id>

<property name="name" column="name"/>

<property name="email" column="email"/>

</class>

</hibernate-mapping>

四、Hibernate对象持久化操作

下面将介绍Hibernate对象持久化的基本操作,包括添加、查询、更新和删除。

1. 添加操作

添加操作通常分为以下几步:

  • 创建Session对象
  • 开启Transaction事务
  • 执行save方法保存对象
  • 提交事务
  • 关闭Session

public void addUser(User user) {

Session session = null;

Transaction transaction = null;

try {

session = HibernateUtil.getSessionFactory().openSession();

transaction = session.beginTransaction();

session.save(user);

transaction.commit();

} catch (Exception e) {

if (transaction != null) {

transaction.rollback();

}

e.printStackTrace();

} finally {

if (session != null) {

session.close();

}

}

}

2. 查询操作

查询操作通常使用Session的get或load方法,基于id获取实体对象。

public User getUserById(Integer id) {

Session session = null;

User user = null;

try {

session = HibernateUtil.getSessionFactory().openSession();

user = session.get(User.class, id);

} catch (Exception e) {

e.printStackTrace();

} finally {

if (session != null) {

session.close();

}

}

return user;

}

3. 更新操作

更新操作与添加操作类似,只是使用的是update方法。

public void updateUser(User user) {

Session session = null;

Transaction transaction = null;

try {

session = HibernateUtil.getSessionFactory().openSession();

transaction = session.beginTransaction();

session.update(user);

transaction.commit();

} catch (Exception e) {

if (transaction != null) {

transaction.rollback();

}

e.printStackTrace();

} finally {

if (session != null) {

session.close();

}

}

}

4. 删除操作

删除操作使用Session的delete方法。

public void deleteUser(User user) {

Session session = null;

Transaction transaction = null;

try {

session = HibernateUtil.getSessionFactory().openSession();

transaction = session.beginTransaction();

session.delete(user);

transaction.commit();

} catch (Exception e) {

if (transaction != null) {

transaction.rollback();

}

e.printStackTrace();

} finally {

if (session != null) {

session.close();

}

}

}

五、Hibernate进阶技巧

在掌握基本操作后,我们还可以学习一些Hibernate的进阶技巧,如:

  • HQL(Hibernate Query Language)查询
  • Criteria查询
  • 原生SQL查询
  • 缓存使用
  • 事务管理

六、总结

Hibernate对象持久化是Java开发中常用的一种技术,通过学习Hibernate的核心概念和基本操作,我们可以更加轻松地掌握对象持久化的技巧。在实际开发中,灵活运用Hibernate的进阶技巧,可以减成本时间项目的开发效能和质量。


本文由IT视界版权所有,禁止未经同意的情况下转发

文章标签: 后端开发


热门