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完全使用面向对象方式开发。
热点新闻