当前位置: 移动互联网学院 > Java培训 > JAVA开发 > JPA是什么意思
JPA是什么意思 时间:2017-08-29     来源:华清远见JAVA学院

JPA是什么意思呢?JPA是Java Persistence API的简称,翻译成中文是Java持久层API。JPA是Sun公司提取了之前EJB规范惨痛失败的经历,在充分吸收了Hibernate基础上发展出来的。

1、为什么需要JPA

JDBC作者开发了Hibernate,目标是Java程序员不懂SQL语句,可以来操作数据库。

2、Hibernate和JPA的关系

对JDBC进行了轻量级封装。将POJO与数据库表建立映射关系,是全自动的ORM框架。

JPA是Java持久化规范。切换到其他ORM是可行的。例如从Hibernate切换到EclipseLink。

JPA是持久化规范,而Hibernate是实现。

3、JPA的优缺点

本质:处理Java对象和关系型数据库表之前的转换,只是针对JDBC做了一次封装

优点:

操作简单,代码简单entityManager.persist(ENTITY);

直接面向持久对象操作

提供世界级数据缓存 - 一级缓存、二级缓存、查询缓存

数据库一致性很强,很少的修改

把各个数据库抽取了一个方言接口

不同数据库实现一个方言接口,如果切换数据库,必须修改方言实现和数据库驱动,链接数据库 缺点:

不能干预SQL语句的生成

项目中,对SQL语句的优化要求比较高,不适合使用JPA(可以使用JPA对原生SQL支持解决)

如果一张表中有上亿级别的数据量,也不适合使用JPA,也不适合使用JPDBC(数据库读写分离、分库分表方案解决)

分库分表 - 时间曲度切分

4、JPA适用项目规模

JPA一般用于中小型项目,如果是超大型项目,不建议使用JPA(性能影响)-> 需要自己去完成性能上的优化,有的优化,JPA做不到,一般会使用MyBatis

PS:JDBC和MyBatis比较容易,JPA或者Hibernate比较困难,因为JPA完全使用面向对象方式开发。

X