Jpa个人小结

花了四天左右的时候终于自学完了jpa,虽然研究的不是很深入,但是还是觉得可以上手了~~下面就简单的做一下总结:

什么是JPA?

Jpa(java Persistence API)是SUN官方提出的Java持久化规范.它为Java开发人员提供了一种对象/关系映射工具来管理Java应用中的关系数据.它的出现主要是为了简化现有的Java持久化开发工作和整合ORM技术.结束现在Hibernate、TopLink、JDO等ORM框架各自为营的局面.

JPA和Hibernate相比是如何工作的?

学过Hibernate的人都知道Hibernate是通过Session接口操作对象的.这里不得不提一下的是Session的缓存机制相当强大,Hibernate中Session缓存的作用主要有:

1、减少了访问数据库的频率

2、当缓存中的持久化对象之间存在循环关联关系时,Session保证不会出现访问对象图的死循环,以及由此导致的JVM堆栈溢出异常.

3、保证了数据库中的相关记录与缓存中相应对象保存同步(脏数据检查机制)

 

而Jpa中采用了EntityManager接口以及JPQL实现对象的CRUD操作

我们可以来看看EntityManager接口中定义了哪些操作对象的方法

 

这里还要提一下JPQL(Java Persistence Query Language),JPQL 是 EJB QL 的一种扩展,它是针对实体的一种查询语言,操作对象是实体,而不是关系数据库的表,而且能够支持批量更新和修改、JOIN、GROUP BY、HAVING 等通常只有 SQL 才能够提供的高级查询特性,甚至还能够支持子查询(和Hibernate的HQL很相似).

 

前面也说了JPA是一个ORM映射规范,J也就是说JPA是需要Provider来实现其功能的,Hibernate就是JPA Provider中很强的一个,目前来说应该无人能出其右。从功能上来说,JPA现在就是Hibernate功能的一个子集。

 

配置Hibernate(persistence.xml)

最后,个人觉得使用JPA最大的好处就是不在需要定义一堆的xml配置文件,我们在做对象关系映射的时候可以大量的使用注解.这大大提高了开发效率.例如,要将 Java 类指定为 JPA 实体,请使用下面批注,如下所示:

@Entity
public class Employee implements Serializable {
    ...
}

这样的配置确实令人觉得相当的简洁(当然不可能所有的配置都这么简单),个人感觉JPA的批注是学好JPA的一个重要部分.特别是使用注解来配置相对复杂的表之间的关系以及对继承关系时,尤其体现出了注解强大的灵活性!

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值