Hibernate相关文章

Hibernate

Hibernate框架简化了java应用程序与数据库交互的开发。 Hibernate是一个开源,轻量级的ORM(对象关系映射)工具。

ORM工具简化了数据创建,数据处理和数据访问。它是将对象映射到数据库中存储的数据()的编程技术。

Hibernate框架有很多优点。它们分别如下:

·        开源和轻量级: Hibernate框架是根据LGPL许可证和轻量级的开源工具。

·        快速性能: Hibernate框架的性能很快,因为缓存在Hibernate框架内部使用。hibernate框架中有两种类型的缓存:一级缓存和二级缓存。一级缓存默认是启用的。

·        数据库独立查询: HQL(Hibernate查询语言)是面向对象的SQL版本。它生成数据库独立查询。所以你不需要编写数据库特定的查询语句。Hibernate之前,如果项目更改了数据库,我们需要更改SQL查询,从而导致维护变得非常复杂。

·        自动创建表: Hibernate框架提供了自动创建数据库表的功能。因此,无需手动在数据库中创建表。

·        简化复杂连接: hibernate框架中可轻松获取多个表中的数据。

·        提供查询统计和数据库状态: Hibernate支持查询缓存,并提供有关查询和数据库状态的统计信息。

·        Hibernate架构包括许多对象持久对象,会话工厂,事务工厂,连接工厂,会话,事务等。

扫描二维码关注公众号,回复: 653975 查看本文章

Hibernate体系结构的要素

·        要创建第一个hibernate应用程序,我们必须知道Hibernate架构的元素。它们如下:

·        会话工厂(SessionFactory)

·        SessionFactoryConnectionProvider的会话和客户端工厂。它拥有数据的二级缓存(可选)org.hibernate.SessionFactory接口提供了工厂方法来获取Session的对象。

·        会话(Session)
Session
对象提供应用程序和存储在数据库中的数据之间的接口。它是一个短生命周期的对象并包装JDBC连接。它是事务,查询和标准的工厂。它拥有一级缓存(强制性)数据。 org.hibernate.Session接口提供插入,更新和删除对象的方法。它还提供了事务,查询和标准的工厂方法。

·        事务(Transaction)
事务对象指定工作的原子单位,它是一个可选项。 org.hibernate.Transaction接口提供事务管理的方法。这个是Hernate独有的可以在Spring中得到体现-事务管理{JDBC

·        连接提供者(ConnectionProvider)

·        它是一个JDBC连接工厂。它从DriverManagerDataSource抽象出来的应用程序。它是一个可选项。

·        事务工厂(TransactionFactory)

·        它是一个事务工厂,是一个可选项。

Java工程

·        1.1载所需的 Hibernate-jars文件:我们将应用程序与MySQL数据库连接。 所以你必须添加mysql-connect.jar文件。

·        1.2. 创建持久化类--     user

                  1.3创建持久化类的映射文件--user.hbm.xml

5. 创建配置文件--hibernate.cfg.xml{与数据库进行的相关操作}

·        2.1//可以使用注释创建hibernate应用程序。有许多注释可用于创建hibernate应用程序,如@Entity@Id@Table等。

·        使用hibernate注释的核心优点是我们不需要创建映射(*.hbm.xml)文件直接创建对象关联。 在这里,hibernate注释用于提供元数据。

使用注释创建hibernate应用程序的示例

1. MySQL和注释添加jar文件

2. 创建持久化类

在这里,我们创建一个持久化类Employee 并使用注释完成与数据库表:tb_employee 的映射关联。

@Entity注释将此类标记为实体。
@Table注释指定要保留此实体的数据的表名。如果不使用@Table注释,hibernate将使用类名作为表名称bydefault
@Id注释标记此实体的标识符。
@Column注释指定此属性或字段的列的详细信息。如果未指定@Column注释,则属性名称将用作列名称bydefault

3. 在配置文件中添加持久化类的映射

打开hibernate.cfg.xml文件,并添加如下的映射资源条目:

<mapping class="com.yiibai.Employee"/>

4. 创建检索或存储持久对象的类

在这个类中,我们只是将Employee类的对象存储到数据库中。在这里,我们使用StandardServiceRegistryBuilder类和MetadataSources类从持久化类获取映射的信息。

Test.java 测试类代码如下 -

package com.yiibai;
 
import org.hibernate.*;
import org.hibernate.boot.MetadataSources;
import org.hibernate.boot.registry.StandardServiceRegistry;
import org.hibernate.boot.registry.StandardServiceRegistryBuilder;
import org.hibernate.cfg.*;
 
public class Test {
    public static void main(String[] args) {
        //Session session = new AnnotationConfiguration().configure().buildSessionFactory().openSession();
        final StandardServiceRegistry registry = new StandardServiceRegistryBuilder().configure("hibernate.cfg.xml")
                .build();
        // 2. 根据服务注册类创建一个元数据资源集,同时构建元数据并生成应用一般唯一的的session工厂
        SessionFactory sessionFactory = new MetadataSources(registry).buildMetadata().buildSessionFactory();
 
        /**** 上面是配置准备,下面开始我们的数据库操作 ******/
        Session session = sessionFactory.openSession();// 从会话工厂获取一个session
        Transaction t = session.beginTransaction();
 
        Employee e1 = new Employee();
        e1.setId(1001);
        e1.setFirstName("Yii");
        e1.setLastName("Bai");
 
        Employee e2 = new Employee();
        e2.setId(1002);
        e2.setFirstName("Min");
        e2.setLastName("Su");
 
        session.persist(e1);
        session.persist(e2);
 
        t.commit();
        session.close();
        System.out.println("successfully saved");
    }
}

WEB工程

,我们将学习使用hibernate创建一个Web应用程序。对于创建Web应用程序,我们使用JSP表示逻辑层,使用Bean类表示数据,以及使用DAO类操作数据库。

猜你喜欢

转载自blog.csdn.net/m0_37942145/article/details/77417728
今日推荐