JPA(Java Persistence API)用于对象持久化的 API,是 Java EE 5.0 平台标准的 ORM 规范,使得应用程序以统一的方式访问持久层。
JPA 与 JDBC 的区别和基本用法
JPA 概念
JPA(Java Persistence API)用于对象持久化的 API,是 Java EE 5.0 平台标准的 ORM 规范,使得应用程序以统一的方式访问持久层。
与 JDBC 的对比
JDBC 也是一种规范和接口,不过 JDBC 是面向 SQL 的,使用起来比较繁琐。所以就有了 ORM 框架,建立了 Java 对象与数据库表之间的映射关系,可以通过直接操作对象来实现持久化,简化了操作的繁杂度。而 JPA 就是 ORM 框架的规范,值得一提的是 Hibernate 是符合 JPA 规范的,而 MyBatis 却不符合,因为 MyBatis 还是需要写 SQL 的。
JDBC 示意图:
JPA 示意图:
例子
在 IDEA 下创建一个 JPA 项目,并实现基本的 CRUD。
1、创建一个 JavaEE Persistence 项目,具体如下所示
采用 Hibernate 实现 JPA。
2、导入相应的 Maven 依赖
添加 Maven 支持。
pom.xml:
1 |
|
3、配置数据库(MySQL 8)相关内容 persistence.xml
注意此文件要位于类路径下,这里放在 resources/META-INF 下。
1 |
|
4、新建一个持久化对象类
1 | package com.yunche.helloworld; |
并在 persistence.xml 中的 persistence-unit 节点下加入:
1 | <!--添加持久化类--> |
5、Main 类
1 | package com.yunche.helloworld; |
6、结果
7、注意事项
我后来发现了一点问题,关于包 javax.persistence-api 的,我创建项目的时候选中了 persistence 2.0 , IDEA 自动导入了 javax.persistence-api-2.0.jar,而 maven 下的 hibernate-entitymanager 依赖含有 javax.persistence-api-2.2.jar ,所以 jar 包重复了,并且我发现2.0版本的有些方法没有,所以还是将2.0版本的jar包删除,用 2.2 版本的。