您的位置:首页 > 其它

Hibernate相关文章

2017-08-19 22:24 253 查看
Hibernate
Hibernate框架简化了java应用程序与数据库交互的开发。Hibernate是一个开源,轻量级的ORM(对象关系映射)工具。
ORM工具简化了数据创建,数据处理和数据访问。它是将对象映射到数据库中存储的数据(表)的编程技术。

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

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

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

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

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

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

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

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

Hibernate体系结构的要素

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

·        会话工厂(SessionFactory)

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

·        会话(Session)

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

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

·        连接提供者(ConnectionProvider)

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

·        事务工厂(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[code]com
.
yiibai
;

 

import[code]org
.
hibernate
.
*
;

import[code]org
.
hibernate
.
boot
.
MetadataSources
;

import[code]org
.
hibernate
.
boot
.
registry
.
StandardServiceRegistry
;

import[code]org
.
hibernate
.
boot
.
registry
.
StandardServiceRegistryBuilder
;

import[code]org
.
hibernate
.
cfg
.
*
;

 

public[code]
class
Test
{

   
public
static
void
main(
String
[]
args
)
{

       
//Sessionsession=newAnnotationConfiguration().configure().buildSessionFactory().openSession();

       
final
StandardServiceRegistryregistry
=

bec9
new
StandardServiceRegistryBuilder().configure("hibernate.cfg.xml")

               
.build();

       
//2.根据服务注册类创建一个元数据资源集,同时构建元数据并生成应用一般唯一的的session工厂

       SessionFactorysessionFactory
=
new
MetadataSources(
registry
).buildMetadata().buildSessionFactory();

 

       
/****上面是配置准备,下面开始我们的数据库操作******/

       Sessionsession
=
sessionFactory
.openSession();//从会话工厂获取一个session

       Transactiont
=
session
.beginTransaction();

 

       Employeee1
=
new
Employee();

       e1
.setId(1001);

       e1
.setFirstName("Yii");

       e1
.setLastName("Bai");

 

       Employeee2
=
new
Employee();

       e2
.setId(1002);

       e2
.setFirstName("Min");

       e2
.setLastName("Su");

 

       session
.persist(
e1
);

       session
.persist(
e2
);

 

       t
.commit();

       session
.close();

       System
.
out
.println("successfullysaved");

   
}

}

WEB工程

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

 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: