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)
· 它是一个事务工厂,是一个可选项。
Hibernate-jars文件:我们将应用程序与MySQL数据库连接。
所以你必须添加
· 1.2.
@Entity,@Id,@Table等。
· 使用hibernate注释的核心优点是我们不需要创建映射(
在这里,hibernate注释用于提供元数据。
<mapping
class="com.yiibai.Employee"/>
bec9
newStandardServiceRegistryBuilder().configure("hibernate.cfg.xml")
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下载所需的所以你必须添加
mysql-connect.jar文件。
· 1.2.
创建持久化类-- user
1.3创建持久化类的映射文件--user.hbm.xml
5.创建配置文件--hibernate.cfg.xml{与数据库进行的相关操作}
· 2.1//可以使用注释创建hibernate应用程序。有许多注释可用于创建hibernate应用程序,如· 使用hibernate注释的核心优点是我们不需要创建映射(
*.hbm.xml)文件直接创建对象关联。
在这里,hibernate注释用于提供元数据。
使用注释创建hibernate应用程序的示例
1.为MySQL和注释添加jar文件
2.创建持久化类
在这里,我们创建一个持久化类:Employee。并使用注释完成与数据库表:
tb_employee的映射关联。
注释将此类标记为实体。@Entity
注释指定要保留此实体的数据的表名。如果不使用@Table
注释,hibernate将使用类名作为表名称@Table
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]classTest{
publicstaticvoidmain(
String[]
args){
//Sessionsession=newAnnotationConfiguration().configure().buildSessionFactory().openSession();
final
StandardServiceRegistryregistry=
bec9
newStandardServiceRegistryBuilder().configure("hibernate.cfg.xml")
.build();
//2.根据服务注册类创建一个元数据资源集,同时构建元数据并生成应用一般唯一的的session工厂
SessionFactorysessionFactory=newMetadataSources(
registry).buildMetadata().buildSessionFactory();
/****上面是配置准备,下面开始我们的数据库操作******/
Sessionsession=
sessionFactory.openSession();//从会话工厂获取一个session
Transactiont=
session.beginTransaction();
Employeee1=newEmployee();
e1.setId(1001);
e1.setFirstName("Yii");
e1.setLastName("Bai");
Employeee2=newEmployee();
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类操作数据库。相关文章推荐
- 准备写一篇调试器相关的文章
- 关于Android数据存储、系统信息相关技术文章网站汇总
- CSS基础和相关文章
- 嵌入式linux相关文章:http://hi.baidu.com/kebey2004/blog/index/5
- 与Dbus相关的文章,完成两个简单的收发程序。
- slam相关文章
- CSS中Float概念相关文章
- 设计模式相关文章 -- 目录
- 聚合支付相关文章
- WPF相关文章索引 (持续更新中)
- osronline上内核相关的文章
- Python相关文章索引(4)
- ndk相关文章
- TFS相关文章
- jsoup教程011-jsoup+Hibernate抓取某站9万条文章
- kvm相关文章
- 『协议』MetaWeblog——博客园文章管理的相关协议
- Retrofit2.0+Rxjava2 相关的文章
- DNN模块开发系列文章(4)——与模块开发相关的类
- EXT学习相关文章