Java应用程序传统上使用JDBC (Java数据库连接)等技术访问关系数据库,来持久存储数据。
由于面向对象技术和关系技术之间的差异,JDBC API要求开发人员手工编写SQL中最基本的CRUD(创建、读取、更新和删除)操作,而这些操作缺乏可移植性。
另外,代码完全依赖于SQL,当从一个数据库转换到另一个数据库时会更加困难。
因为关系技术关注的是数据及其关系,而面向对象不仅强调数据,而且还强调在数据上执行的操作。这导致了面向对象与面向关系不适配。
一个被广泛接受的解决方案是对象关系映射(ORM)。
JPA,即Java Persistence API,JAVA持久化API。
是描述对象关系映射(ORM)和持久对象管理接口的规范,用于为ORM实现创建标准。
JPA只是一种规范,不是框架,可以被开发者参照该规范去实现自己JPA。
比如,Hibernate,iBATIS,OpenJPA都提供了JPA的实现,都是JPA的Provider。
Sun引入新的JPA ORM规范出于两个原因:
其一,简化现有Java EE和Java SE应用开发工作;
其二,Sun希望整合ORM技术,实现天下归一。