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来实现,以此来减少框架之间的耦合性。
相关文章推荐
- ASP也使用ORM,给ASP上所有的SQL注入画上句号
- Hibernate Oracle sequence的使用技巧
- jsp Hibernate批量更新和批量删除处理代码
- jsp hibernate的分页代码第1/3页
- 仿orm自动生成分页SQL分享
- JAVA+Hibernate 无限级分类
- SSH整合中 hibernate托管给Spring得到SessionFactory
- jsp hibernate 数据保存操作的原理
- hibernate中的增删改查实现代码
- 解决hibernate+mysql写入数据库乱码
- java优化hibernate性能的几点建议
- java Hibernate延迟加载
- hibernate 常用方法介绍
- 详解Java的Hibernate框架中的注解与缓存
- 浅析Java的Hibernate框架中的继承关系设计
- 深入理解:单一入口、MVC、ORM、CURD、ActiveRecord概念
- JQuery+Ajax+Struts2+Hibernate框架整合实现完整的登录注册
- 深入理解Hibernate中的flush机制
- Laravel 5框架学习之Eloquent (laravel 的ORM)
- 用 Composer构建自己的 PHP 框架之使用 ORM