简单讲解Hibernate数据("轻松入门Hibernate数据操作详解")

原创
ithorizon 7个月前 (10-19) 阅读数 18 #后端开发

轻松入门Hibernate数据操作详解

一、Hibernate简介

Hibernate是一个开源的对象关系映射(ORM)框架,它对JDBC进行了封装,将Java对象映射到数据库中的表,简化了数据库操作。Hibernate的关键目的是为了减少开发人员编写SQL语句的工作量,尽或许减少损耗开发快速。

二、Hibernate核心概念

Hibernate的核心概念关键包括以下几点:

  • 持久化类:与数据库表对应的Java类
  • 对象关系映射:将持久化类的属性映射到数据库表的列
  • 会话(Session):Hibernate操作数据库的接口
  • 事务(Transaction):保证数据的一致性和完整性
  • 缓存:尽或许减少损耗数据访问快速

三、Hibernate入门步骤

下面将介绍怎样从零起初使用Hibernate进行数据操作。

3.1 配置Hibernate环境

首先,需要配置Hibernate环境,包括以下步骤:

  1. 添加Hibernate依赖性到项目中
  2. 创建hibernate.cfg.xml配置文件
  3. 创建持久化类和映射文件

3.2 添加Hibernate依赖性

将Hibernate的jar包添加到项目的lib目录下,并在项目的build path中引入这些jar包。以下是一个典型的Hibernate依赖性列表:

org.hibernate

hibernate-core

5.4.12.Final

org.hibernate.javax.persistence

hibernate-jpa-2.2-api

1.0.0.Final

mysql

mysql-connector-java

8.0.22

3.3 创建hibernate.cfg.xml配置文件

在项目的src目录下创建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/hibernate_db?serverTimezone=UTC</property>

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

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

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

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

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

<mapping resource="com/example/domain/User.hbm.xml"/>

</session-factory>

</hibernate-configuration>

3.4 创建持久化类和映射文件

创建一个名为User的持久化类,对应数据库中的user表。同时创建User.hbm.xml映射文件,将类的属性映射到表的列。

3.4.1 创建持久化类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 username;

private String password;

// 省略getter和setter方法

}

3.4.2 创建映射文件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 package="com.example.domain">

<class name="User" table="user">

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

<generator class="native"/>

</id>

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

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

</class>

</hibernate-mapping>

四、Hibernate数据操作

Hibernate提供了充足的数据操作方法,以下将分别介绍增、删、改、查四种操作。

4.1 添加数据(增)

使用Hibernate添加数据非常明了,只需要以下几个步骤:

  1. 创建Session对象
  2. 开启事务
  3. 创建持久化对象,并设置属性
  4. 将持久化对象保存到数据库
  5. 提交事务
  6. 关闭Session

以下是一个添加数据的示例代码:

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

Transaction transaction = session.beginTransaction();

User user = new User();

user.setUsername("admin");

user.setPassword("123456");

session.save(user);

transaction.commit();

session.close();

4.2 删除数据(删)

删除数据与添加数据类似,只需要将save方法改为delete方法即可。以下是一个删除数据的示例代码:

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

Transaction transaction = session.beginTransaction();

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

session.delete(user);

transaction.commit();

session.close();

4.3 修改数据(改)

修改数据需要先获取到要修改的持久化对象,然后修改对象的属性,最后提交事务。以下是一个修改数据的示例代码:

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

Transaction transaction = session.beginTransaction();

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

user.setUsername("new_username");

session.update(user);

transaction.commit();

session.close();

4.4 查询数据(查)

Hibernate提供了多种查询行为,如HQL、Criteria等。以下是一个使用HQL查询所有用户信息的示例代码:

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

Transaction transaction = session.beginTransaction();

String hql = "FROM User";

List<User> users = session.createQuery(hql, User.class).list();

for (User user : users) {

System.out.println(user.getUsername() + " - " + user.getPassword());

}

transaction.commit();

session.close();

五、总结

Hibernate作为一个强势的ORM框架,大大简化了Java Web应用中的数据库操作。通过本文的介绍,相信你已经对Hibernate有了一个基本的了解。当然,Hibernate还有很多高级特性,如缓存、事务管理、相关性映射等,需要进一步学习和实践。


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

文章标签: 后端开发


热门