您的位置:首页 > 其它

JPA与ORM以及Hibernate

2016-03-10 15:18 155 查看


有没有办法让程序员彻底抛弃书写SQL思想,完全的使用面向对象思想开发软件呢?

需要一种可行的ORM框架。

什么是ORM?

不同的数据库使用的SQL语法不同,比如PL/SQL(Oracle)和T/SQL(SQL SERVER);

同样的功能不同的数据库有不同的实现方式

程序过分依赖SQL对程序的移植性扩展维护等带来很大的麻烦。

ORM框架包括Entity EJB、Hibernate、iBATIS、TopLink等,很多公司还开发了自己的ORM框架来解决项目的持久化。然而每种ORM框架都有自己的语法,他们之间不能直接通用。

 


对开发者而言,很多数据库持久化的的操作都是类似的,项目中采取的框架不同会造成代码的重复性。那么有没有办法来改善这种情况呢?

回想JDBC可以作为为多种关系数据库提供相同的访问方式,使开发人员方便于编写数据库应用程序。那么是不是可以有一种规范可以像JDBC一样提供不同ORM框架的统一规范。

Sun公司为了简化现有Java EE和Java SE应用的对象持久化的开发工作整合ORM技术,结束现在Hibernate、iBATIS、TopLink等ORM框架各自为营的局面,提出了新的JPA
ORM
规范。

1)JPA为POJO提供持久化标准规范。

2)JPA的使用:

Hibernate与TopLink以及OpenJpa都提供了JPA的实现。

3)JPA主要技术:
JPA的总体思想和现有Hibernate、TopLink、JDO等ORM框架大体一致。总的来说,JPA包括以下三方面的技术:

A.ORM映射元数据:JPA通过注解XML描述映射关系,并将运行中的实体对象持久化到数据库中。

B.JPA持久化API:使用面向对象的思想,操作实体对象,进行增删改查的操作。至于怎么操作,由框架思考这件事。这必将大大的节省了开发时间,提高了开发效率。

C.查询语言:使用面向对象的思想避免了同程序的SQL语句产生交集

4)JPA与Hibernate
         注意,前面说过了,JPA是统一了各种ORM框架的接口,所以说,可以把JPA理解为它并不是新的ORM框架,是接口,是规范,是工具。就像JDBC不是数据库一样,也没有办法代替数据库。同理,JPA也不是ORM框架,我们可以透过JPA使用各种ORM,实现各项目之间的移植性,这是做到低耦合、可扩展的程序设计。

         Hibernate是ORM框架,它实现了JPA的规范。

        实现JPA接口也并不意味着可以替代Hibernate,Hibernate的索引功能,缓存功能并没有相应的接口,所以有些时候还是需要Hibernate的。但是!凡是JPA能实现的功能都用JPA来实现,以此来减少框架之间的耦合性
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  jpa orm hibernate