17.12.27
跟同事交流了一下,总结如下。
1、jpa是一个标准,提供了接口,实现该标准或者部分实现该标准的框架提供了接口的具体实现。比如hibanate、spring data jpa。
Jpa的使用一般就是两种:1、通过JpQL操作实体。2、通过标准API操作实体。
Mybatis并没有实现Jpa,主要还是Mybatis甚至连对象状态管理都没有。Mybatis只是相当于较好的封装了jdbc。
Hibanate提供了完整的对象状态管理,整个对象-映射-表都被管理起来了。
Mybatis的Sql都需要自己手动写。
2、为Mybatis使用通用Mapper的时候,通用Mapper借用了Jpa的Mapper管理,需要在实体上注解好表名、字段名。而Sql都是针对单表查询的自动的Sql。
3、突然想明白了架构和框架的区别。
架构是对于系统的设计,而框架则是对该设计的具体实现。
比如各种标准就属于架构,举例来说Jpa标准属于架构,而实现Jpa的hibernate和SpringDataJpa则是框架。
4、一篇介绍Jpa不错的文章:http://blog.csdn.net/hmk2011/article/details/6289151
——————————
JPA是Java Persistence API的简称,中文名Java持久层API,是JDK 5.0注解或XML描述对象-关系表的映射关系,并将运行期的实体对象持久化到数据库中。JPA是Java Persistence API的简称,中文名Java持久层API,是JDK 5.0注解或XML描述对象-关系表的映射关系,并将运行中的实体对象持久化到数据库中。
Sun引入新的JPA ORM规范出于两个原因:其一,简化现有Java EE和Java SE应用开发工作;其二,Sun希望整合ORM技术,实现天下归一。
JPA的总体思想和现有Hibernate、TopLink、JDO等ORM框架大体一致。
JPA包括以下3方面的技术:
1、ORM映射元数据
JPA支持XML和JDK5.0注解两种元数据的形式,元数据描述对象和表之间的映射关系,框架据此将实体对象持久化到数据库表中;
2、API
用来操作实体对象,执行CRUD操作,框架在后台替代我们完成所有的事情,开发者从繁琐的JDBC和SQL代码中解脱出来。
3、查询语言
这是持久化操作中很重要的一个方面,通过面向对象而非面向数据库的查询语言查询数据,避免程序的SQL语句紧密耦合。
————
标准化
JPA 是 JCP 组织发布的 Java EE 标准之一,因此任何声称符合 JPA 标准的框架都遵循同样的架构,提供相同的访问API,这保证了基于JPA开发的企业应用能够经过少量的修改就能够在不同的JPA框架下运行。
容器级特性的支持
JPA框架中支持大数据集、事务、并发等容器级事务,这使得 JPA 超越了简单持久化框架的局限,在企业应用发挥更大的作用。
————以上来自百度百科
网友评论