JDBC,ORM,JPA,Hibernate
1.java 和 javax
java和javax都是Java的API(Application Programming Interface)包,java是核心包,javax的x是extension的意思,也就是扩展包
2.JDBC
3.ORM
ORM,Object-Relation-Mapping,即对象关系影射技术,是对象持久化的核心,是对JDBC的封装。
4.为什么使用ORM?
ORM则建立了Java对象与数据库对象之间的影射关系,程序员不需要编写复杂的SQL语句,直接操作Java对象即可,想对数据库对象操作事,直接操作Java对象即可。
5.什么是JPA
参考 JPA学习总结
JPA : Java Persistence API,Java持久化API,是Sun公司在Java EE 5规范中提出的Java持久化接口,旨在规范、简化Java对象的持久化工作。
JPA是目前比较流行的一种ORM技术之一,所以他拥有ORM技术的各种特点,当然他还有自己的一些优势。
使用JPA持久化对象,并不是依赖于某一个ORM框架。
JPA 查询 是面向对象的查询 是利用EntityManager来实现。JPA查询 也可以 使用原生sql
参考 一步步实现:JPA的基本增删改查CRUD(jpa基于hibernate)
参考JPA + SpringData 操作数据库原来可以这么简单 ---- 深入了解 JPA - 1
6.为什么使用JPA
1 标准化
JPA 是 JCP 组织发布的 Java EE 标准之一,因此任何声称符合 JPA 标准的框架都遵循同样的架构,提供相同的访问 API,这保证了基于JPA开发的企业应用能够经过少量的修改就能够在不同的JPA框架下运行。使用JPA的一个好处是,可以更换实现而不必改动太多代码
2 可媲美JDBC的查询能力
JPA的查询语言是面向对象而非面向数据库的,它以面向对象的自然语法构造查询语句,可以看成是hibernate HQL的等价物。JPA定义了独特的JPQL(Java Persistence Query Language),JPQL是EJB QL的一种扩展,它是针对实体的一种查询语言,操作对象是实体,而不是关系数据库的表,而且能够支持批量更新和修改、JOIN、GROUP BY、HAVING 等通常只有 SQL 才能够提供的高级查询特性,甚至还能够支持子查询。
7.JPA框架
比较成熟的 JPA 框架主要包括 Jboss 的 Hibernate EntityManager、Oracle 捐献给 Eclipse 社区的 EclipseLink、Apache 的 OpenJPA 等
8.什么是Hibernate
参考http://blog.sina.com.cn/s/blog_5f1619e80100yoxz.html
JPA是一种规范,而hibernate是它的一种实现。
Hibernate对JPA的支持,并不是提供了一套替代品。而是对JPA的补充。
如果想用hibernate注解,一定会用到jpa的。如果hibernate认为jpa的注解够用,就直接用。否则会弄一个自己的出来作为补充”
所以首选JPA的注解,当JPA的注解不够用,采取用hibernate补充的注解。