深入浅出JPA--概述

.是什么

               JPA(Java Persistence API,java 持久化API),定义了对象-关系映射(ORM)以及实体对象持久化的标准接口.JPA EJB3.0规范的一部分,JPA不局限于EJB3.0,而是作为POJO持久化的标准规范,可以脱离容器独立的运行,开发和测试变得更加方便.

               JPA提供了以POJO编程模型为持久化对象的机制;通过JDK5.0注解或XML描述对象-关系表的映射关系,并将运行期的实体对象持久化到数据库中.JPA的结构如下所示:


.产生

 JPA SUN引入的.那么SUN为什么要引入新的JPA ORM规范呢.主要是处于两个原因:

其一:简化现有Java EEJava SE应用的对象持久化的开发工作:

                *和实体Bean相比,需要配置文件,提供了更好的开发体验

               *不用于EJB3.0,JPA不依赖J2EE容器,java中的通用API.

其二.Sun希望整合ORM技术,统一各种ORM框架的规范,实现天下统一.目前Hibenate3.2已经提供了JPA的实现.

.为什么要使用

               咱们都知道持久化的作用是处理复杂的业务逻辑,减少重复代码.如果你写过复杂的应用,就会发现用JDBC要处理大量地处理字符串,而且直接使用JDBC字符串处理特别容易导致SQL 注入漏洞,如果直接使用框架就可以省去这些麻烦.更加专注于业务逻辑.JPA的出现就是为了制定一个持久化的标准.

 

.JAP hibernate 存在什么关系

               JPAhibernate的一个抽象或者接口,JPAhibernate的关系就犹如JDBCJDBC驱动的关系.

JPA是一种规范:JPA本质上就是一种ORM规范,不要误以为是ORM框架.因为JPA并未提供ORM实现,它只是制订了一些规范,提供了一些编程的API接口但具体实现则由用服务器厂商提供.

hibernate是具体实现,hibernate除了作为ORM框架之外,它也是一种JPA实现.

从功能上来说,我更加愿意理解JPAhibernate功能的一个子集.

.优缺点

优点:

       (1)标准化

       (2)对容器级特性的支持:JPA框架中支持大数据集,事务,并发等容器级事务.

       (3)简单易用,集成方便:JPA的主要目标之一就是提供更加简单的编程模型.

       (4)JDBC的查询能力不分上下:JPA的查询语言是面向对象的,JPA定义了独特的JPQL,而且能够支持批量 更新和修改.

       (5)支持面向对象的高级特性:JPA中能够支持面向对象的高级特性.

缺点:

       (1)由于出来的时间不是特别长,在技术上还不是特别的稳定.

       (2)JPA是一种规范不是一种产品,需要提供商提供一个实施,才能获得这些基于标准的API优势.

       (3)JPAhibernateORM框架爱真子集,只提供其中最好的功能,如果应用程序中需要的功能,但是规范中没有提供的功能,则使用供应商特有的API,导致移植性减弱.

.主要技术

(1)ORM映射元数据

               JPA支持XMLJDK5.0注解两种元数据的形式,元数据描述对象和表之间的映射关系,框架将实体对象持久化到数据库表中.

(2)JPAAPI

               API在哪里都是常用常见的.在最初学习的VB中都有API的存在.JPA中再次见到API,从而可见API的强大.此处的API用来操作实体对象,执行CRUD操作,框架在后台代替我们完成所有的事情,把开发者从繁琐的JDBCSQL代码中解脱出来.

(3)查询语言

               这是持久化操作中很重要的一个方面,通过面向对象而非面向数据库的查询语言查询数据,避免程序的SQL语句紧密耦合.

 


               学习还得从宏观下手,大概了解这个内容的来龙去脉和精髓,在深入学习内涵.就如要了解JPA这东西,就需要和以前学习过的hibernateSQL ,API联系起来,那么就会变得简单了,理解起来就快了.学习要从宏观出发,在去寻找能产生共鸣的某个知识点.往下还会继续给大家介绍关于JPA的内容


评论 14
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

弯_弯

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值