文档章节

Hibernate 简介

LYQ1990
 LYQ1990
发布于 2016/05/06 11:07
字数 657
阅读 31
收藏 1

我们从三个角度理解一下Hibernate

 

一、Hibernate是对JDBC进一步封装

       原来没有使用Hiberante做持久层开发时,存在很多冗余,如:各种JDBC语句,connection的管理,所以出现了HibernateJDBC封装了一下,我们不用操作数据,直接操作它就行了。
 

二、我们再从分层的角度来看

       我们知道非常典型的三层架构:表示层,业务层,还有持久层。Hiberante也是持久层的框架,而且持久层的框架还有很多,比如:IBatisNhibernateJDOOJBEJB等等。

 

三、Hibernate是开源的一个ORM(对象关系映射)框架

      ORM,即Object-Relational Mapping,它的作用就是在关系型数据库和对象之间做了一个映射。从对象(Object)映射到关系(Relation),再从关系映射到对象。这样,我们在操作数据库的时候,不需要再去和复杂SQL打交道,只要像操作对象一样操作它就可以了(把关系数据库的字段在内存中映射成对象的属性)。

 

 

     从上图中,我们可以看出Hibernate六大核心接口,两个主要配置文件,以及他们直接的关系。Hibernate的所有内容都在这了。那我们从上到下简单的认识一下,每个接口进行一句话总结。

1Configuration接口:负责配置并启动Hibernate

2SessionFactory接口:负责初始化Hibernate

3Session接口:负责持久化对象的CRUD操作

4Transaction接口:负责事务

5Query接口和Criteria接口:负责执行各种数据库查询

 

注意:Configuration实例是一个启动期间的对象,一旦SessionFactory创建完成它就被丢弃了。

 

Hibernate的优/缺点:

 

优点:

1、更加对象化

      以对象化的思维操作数据库,我们只需要操作对象就可以了,开发更加对象化。

2、移植性
     
因为Hibernate做了持久层的封装,你就不知道数据库,你写的所有的代码都具有可复用性。

3Hibernate是一个没有侵入性的框架,没有侵入性的框架我们称为轻量级框架。

      对比StrutsActionActionForm,都需要继承,离不开StrutsHibernate不需要继承任何类,不需要实现任何接口。这样的对象叫POJO对象。

4Hibernate代码测试方便。

5、提高效率,提高生产力。

 

缺点:

1、使用数据库特性的语句,将很难调优

2、对大批量数据更新存在问题

3、系统中存在大量的攻击查询功能

 

 

© 著作权归作者所有

共有 人打赏支持
LYQ1990
粉丝 6
博文 238
码字总数 206220
作品 0
东城
译:Hibernate Search - Getting started(Chapter 2)

Getting started with Hibernate Search 本章内容包括: ■ 什么是 Hibernate Search? ■ 如何建立和配置 Hibernate Search ■ 领域模型映射简介 ■ 数据索引简介 ■ 全文查询简介 ■ 如何使...

cwalet
2012/06/01
0
0
Hibernate-Plus 发布 1.0.0.Final

简介 | Intro Hibernate 增强工具包 - 只做增强不做改变,更加精简持久层CRUD操作 优点 | Advantages 纯正血统:完全继承原生 Hibernate 的所有特性 最少依赖:仅仅依赖 Hibernate 自动生成代...

青苗
2016/12/06
2.4K
10
Hibernate注解(一)类级别注解

1、Hibernate注解简介 2、JPA与Hibernate的关系 3、Hibernate注解分类 4、@Entity 5、@Table 6、@Embeddable 7、schema与catalog 一、Hibernate注解简介 使用注解的目的:为了简化繁琐的ORM...

leeqico
06/28
0
0
Hibernate 增强工具包--Hibernate-Plus

简介 | Intro Hibernate 增强工具包 - 只做增强不做改变,更加精简持久层CRUD操作 优点 | Advantages 纯正血统:完全继承原生 Hibernate 的所有特性 最少依赖:仅仅依赖 Hibernate 自动生成代...

青苗
2016/12/06
1K
3
zhaoml529/SpringMVC-Activiti5.16-Shiro

SpringOA简介 基于SpringMVC+Shiro+Activiti 5.16 的简单OA,可以快速入门Activiti学习用。 此版本前台使用的是EasyUI 框架简介 框架以Spring Framework为核心、Spring MVC作为模型视图控制器...

zhaoml529
2017/05/19
0
0

没有更多内容

加载失败,请刷新页面

加载更多

Maven 项目中依赖的搜索顺序

ettings_mirror 的优先级高于 central settings_profile_repo 优先级高于 settings_mirror settings_profile_repo 优先级高于 pom_repositories settings_profile_repo 优先级高于 pom_prof......

xingyu4j
27分钟前
2
0
改变maven项目的名称

pom.xml <groupId>com.soft.xxx</groupId><artifactId>xxx</artifactId><packaging>war</packaging><version>0.0.1-SNAPSHOT</version><name>xxx Maven Webapp</name><build>......

1713716445
29分钟前
2
0
windows下按照RabbitMQ

rabbitMQ是一个在AMQP协议标准基础上完整的,可服用的企业消息系统。它遵循Mozilla Public License开源协议,采用 Erlang 实现的工业级的消息队列(MQ)服务器,Rabbit MQ 是建立在Erlang OTP平...

zhaochaochao
29分钟前
2
0
10个PHP比特币开源项目

如果你是一个Phper,如果你希望学习区块链,那么本文列出的10个开源的Php比特币项目,将有助于你了解在自己的应用中如何加入对比特币的支持。 如果你希望快速掌握使用Php对接比特币钱包的方法...

笔阁
36分钟前
23
0
MyBatis级联探讨

数据模型 <?xml version="1.0" encoding="UTF-8" ?><!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"><mapper name......

职业搬砖20年
40分钟前
2
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部