zoukankan      html  css  js  c++  java
  • Hibernate 框架理解

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

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

      ORM工具内部使用JDBC API与数据库进行交互。

      Hibernate框架的优点:

    • 开源和轻量级:Hibernate看见是根据LGPL许可证和轻量级的开源工具。
    • 快速性能:Hibernate框架的性能很快,因为缓存在Hibernate框架内部使用。Hibernate框架中有两种类型的缓存:一级缓存和二级缓存。一级缓存默认是启用的。
    • 数据库独立查询:HQL(Hibernate查询语言)是面向对象的SQL版本。它生成数据库独立查询。所以不需要编写数据库特定的查询语句。在 Hibernate之前,如果项目修改了数据库,需要更改SQL查询,从而导致维护变得复杂。
    • 自动创建表:Hibernate框架提供了自动创建数据库表的功能。因此,无需手动在数据库中创建表。
    • 简化复杂连接:在Hibernate框架中可轻松获取多个表中的数据。
    • 提供查询统计和数据库状态:Hibernate支持查询缓存,并提供有关查询和数据库状态的统计信息。

    Hibernate架构包括许多对象持久对象,会话工厂、事物工厂、连接工厂、会话事务等。Hibernate架构中可分为4层Java应用层、hibernate框架层、反手api层和数据库层

      Application ------Presistent  Object -----HIBERNATE  Mapping  File、Configuration  File --Database

      Presistent  Object部分包括:SessionFactory、Session、Transaction Factory、Transaction、Connection Provider。

      Hibernate框架可以使用许多对象会话工厂,会话、事务等以及现有的Java  API,如JDBC(Java数据库连接)、JTA(Java事务API)和JNDI(Java命名目录接口)。

      要创建一个hibernate应用程序,需要知道Hibernate架构的元素。

      会话工厂(SessionFactory)

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

      会话(Session)

      Session对象提供应用程序和存储在数据库中的数据之间的接口。它是一个短生命周期的对象并包装JDBC连接。它是事务、查询和标准的工厂。它还提供了事务、查询和标准的工厂方法。

      事务(Transaction)

      事务对象指定工作的原子单位,它是一个可选项。org.hibernate.Transaction接口提供事务管理的方法。

      连接提供者(ConnectionProvider)

      它是一个JDBC连接工厂。它从DriverManager或DataSource抽象出来的应用程序。是一个可选事项。

      事务工厂(TransactionFactory),是一个可选项。

    另外,可以使用注释创建hibernate应用程序。有许多注释可用于创建hibernate应用程序,如@Entity,@Id,@Table等。Hibernate注释基于JPA2规范。并支持所有功能。所有的JPA注释都在javax.persistence.*包中定义。Hibernate EntityManager实现由JPA规范定义的接口和生命周期。使用hibernate注释的优势是不需要创建映射(*.hbm.xml)文件直接创建对象关联。

    @Entity注释将类标记为实体,放在类名上。

    @Table注释指定要关联此实体类的数据库的表名。放在类名上,格式@Table(name="表名")

    如果不使用@Table注释,hibernate将使用类名作为表名称。默认情况。

    @Id注释标记实体的标识符。

    @Column注释指定此属性或字段的列的详细情况。如果位指定@Column注释,则属性名称将用作列名,默认情况下。

  • 相关阅读:
    使用cwRsync在Windows的目录之间增量同步文件
    Linux搭建lnmp环境
    ie下文件上传无权访问的问题
    10
    8
    9
    7
    网络爬虫环境配置之的模块安装
    pip的更新问题
    【转】进程与线程的一个简单解释
  • 原文地址:https://www.cnblogs.com/sdlzspl/p/7761149.html
Copyright © 2011-2022 走看看