【Java开发实战攻关】「JPA技术专题」带你一同认识和使用JPA框架

本文围绕 Java JPA 展开,介绍了 JPA 是 Java 对象持久化 API 及与 Hibernate 的关系,阐述了搭建 JPA 环境的步骤。详细讲解了 JPA 注解、API 及缓存机制,还介绍了关联关系映射的多种类型,如一对一、一对多等,最后介绍了 JPQL 查询语言。

一、JPA 介绍

1、JDBC

在这里插入图片描述

2、JPA是什么

1.Java Persistence API:Java对象持久化API
2.JDK5.0 平台的标准 ORM 规范,可以让 Java 程序用统一方式访问持久层
在这里插入图片描述
3.JPA 和 Hibernate 的关系

  1. JPA 是 Hibernate 的一个抽象(JDBC Interface 与 JDBC驱动的关系)
  2. JPA 本质上就是一种 ORM 规范,不是 ORM 框架,因为 JPA 并未提供 ORM 实现,它只提供了 API 接口,具体的实现由 ORM 厂商提供实现
  3. Hibernate 是 一个 ORM 框架,同时也是一种 JPA 的实现
  4. Hibernate 从3.2版本开始兼容 JPA
  5. Hibernate 使用起来是XML配置文件的方式,而 JPA 是注解的方式,而注解是JDK5.0中自带的,所 以并不需要再引入第三方Jar包,实际上就是来学习如何使用注解的方式来使用 Hibernate

5.要使用到 JPA 的哪些技术

  1. ORM 映射元数据:JPA 支持 XML 和 JDK5.0
    注解两种元数据的形式,元数据描述对象和表之间的映射关系,框架将实体对象持久化到数据库表中
  2. JPA 的 API:利用实体对象,操作 JPA 提供的接口进行 CRUD 操作,简化开发者编程代码
  3. 查询语言(JPQL):这是持久化操作中很重要的一个方面,通过面向对象而非面向数据库的查询语言去查询数据

二、搭建 JPA 环境

  1. 使用Maven构建项目,项目名为:JPA
  2. 配置pom.xml
<properties>
    <spring.version>5.2.6.RELEASE</spring.version>
    <hibernate.version>5.4.10.Final</hibernate.version>
    <mysql.version>8.0.21</mysql.version>
    <ehcache.version>3.8.1</ehcache.version>
    <jpa.version>1.0.1.Final</jpa.version>
    <slf4j.version>1.7.25</slf4j.version>
    <aspectj.version>1.9.5</aspectj.version>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
    <maven.compiler.source>1.8</maven.compiler.source>
    <maven.compiler.target>1.8</maven.compiler.target>
</properties>
 
<dependencies>
    <!-- Spring -->
    <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-context</artifactId>
        <version>${spring.version}</version>
    </dependency>
    <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-beans</artifactId>
        <version>${spring.version}</version>
    </dependency>
    <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-core</artifactId>
        <version>${spring.version}</version>
    </dependency>
    <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-jdbc</artifactId>
        <version>${spring.version}</version>
    </dependency>
    <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-aop</artifactId>
        <version>${spring.version}</version>
    </dependency>
    <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-tx</artifactId>
        <version>${spring.version}</version>
    </dependency>
    <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-orm</artifactId>
        <version>${spring.version}</version>
    </dependency>
    <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-test</artifactId>
        <version>${spring.version}</version>
    </dependency>
    <!-- Hibernate -->
    <dependency>
        <groupId>org.hibernate</groupId>
        <artifactId>hibernate-core</artifactId>
        <version>${hibernate.version}</version>
    </dependency>
    <dependency>
        <groupId>org.hibernate</groupId>
        <artifactId>hibernate-entitymanager</artifactId>
        <version>${hibernate.version}</version>
    </dependency>
    <dependency>
        <groupId>org.hibernate</groupId>
        <artifactId>hibernate-hikaricp</artifactId>
        <version>${hibernate.version}</version>
    </dependency>
    <dependency>
        <groupId>org.hibernate</groupId>
        <artifactId>hibernate-ehcache</artifactId>
        <version>${hibernate.version}</version>
    </dependency>
    <dependency>
        <groupId>org.hibernate.javax.persistence</groupId>
        <artifactId>hibernate-jpa-2.0-api</artifactId>
        <version>${jpa.version}</version>
    </dependency>
    <dependency>
        <groupId>mysql</groupId>
        <artifactId>mysql-connector-java</artifactId>
        <version>${mysql.version}</version>
    </dependency>
    <dependency>
        <groupId>org.ehcache</groupId>
        <artifactId>ehcache</artifactId>
        <version>${ehcache.version}</version>
    </dependency></
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

江東-H

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

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

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

打赏作者

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

抵扣说明:

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

余额充值