说道hibernate,首先不得不提的是JPA,类似于接口,j2EE的十三个规范,JPA是一个标准,或者更加准确的说是一个规范,而hibernate实现了这一规范。
JPA简介
JPA全称Java Persistence API.JPA通过JDK 5.0注解或XML描述对象-关系表的映射关系,并将运行期的实体对象持久化到数据库中。
JPA的总体思想和现有Hibernate、TopLink、JDO等ORM框架大体一致。总的来说,JPA包括以下3方面的技术:
Ø ORM映射元数据
JPA支持XML和JDK5.0注解两种元数据的形式,元数据描述对象和表之间的映射关系,框架据此将实体对象持久化到数据库表中;
Ø API
用来操作实体对象,执行CRUD操作,框架在后台替我们完成所有的事情,开发者从繁琐的JDBC和SQL代码中解脱出来。
Ø 查询语言
这是持久化操作中很重要的一个方面,通过面向对象而非面向数据库的查询语言查询数据,避免程序的SQL语句紧密耦合。
优势在于JPA 是 JCP 组织发布的 Java EE 标准之一,因此任何声称符合 JPA 标准的框架都遵循同样的架构,提供相同的访问API,这保证了基于JPA开发的企业应用能够经过少量的修改就能够在不同的JPA框架下运行。
详解:http://www.cnblogs.com/holbrook/archive/2012/12/30/2839842.html
Hibernate
了解了JPA,我们知道了JPA是一个规范,只要实现了这一规范就可以在框架中进行使用。那么究竟什么是hibernate呢?
Ø 概念
Hibernate就是一个持久化的框架,我们知道在保存在内存中的数据会在开机和关机后消失,但是hibernate会将数据持久化到数据库,从而保证了数据的完整性和安全。
在没有使用hibernate之前,我们经常使用的是一系列的sql语句,这样书写的语句不仅仅繁琐,而且容易出现错误,而hibernate正好将这一系列的jdbc语句进行了封装,使得相关的操作变得简单,hibernate是一个ORM框架,也就是实体和关系的映射。
什么是ORM
之前在.net项目中首次接触了ORM框架,那就是EF(EntityFramework),将一系列的对于数据库的操作进行了封装,从而使得对数据库的增删改查操作变得十分的简单。
对象关系映射(英语:ObjectRelational Mapping,简称ORM,或O/RM,或O/R mapping),是一种程序技术,用于实现面向对象编程语言里不同类型系统的数据之间的转换。从效果上说,它其实是创建了一个可在编程语言里使用的“虚拟对象数据库”。
简单来说,ORM实现了使得我们可以面向对象编程而不再是面向关系进行编程,具体来说,ORM的好处是:
1. ORM使得我们可以摆脱sql,但是不表示我们什么都不用sql,对于一些复杂的功能的实现,我们还是使用sql比较好操作。
2. ORM更适合复杂的系统,复杂不代表是大型,只是说业务逻辑比较多的,这样可以避免更多sql语句的书写,从而简化了我们的开发。
Ø 核心(hibernate)
从面向关系编程,到面向对象编程,hibernate可以将数据持久化到数据库,从而将对象模型转换为关系模型。
Ø 优点
Hibernate是一个轻量级的框架,没有侵入性,也就是一个pojo对象,我们知道一般我们书写的类或者一些实现必须继承或者实现某一个接口,这样必然存在依赖性,一般实现的类或者接口去除,那么我们书写的代码将失效,这样必然不是我们的想要的。
优点总结:
1、 依赖于抽象而不是依赖于具体。
2、 Hibernate是轻量级的框架,我们知道轻量级的框架的特点是不存在依赖性或者是侵入性,这样使得开发不具有耦合性。
3、 具有更好的移植性。
4、 使得开发更加的对象化。
当然任何一个东西都是存在缺点的,hibernate的缺点是使用数据库性的语句,将很难调优。此外对大批量数据的更新存在问题。而且系统中存在大量的统计查询,这样都不利于使用,但是我们知道不足的地方可以有其他的工具进行补充,从而相得益彰。
小结
这里只是简单介绍了一些hibernate的知识,具体的详细的知识,请持续关注~