jpa insert 对象_SpringBoot2.x入门:使用JPA

本文介绍SpringBoot2.x中JPA的引入和使用,包括配置、注解解析、实体类配置、仓库接口及测试方法。讨论了JPA作为ORM规范的特性,如映射管理、持久化、查询语言,并提供了使用示例。
摘要由CSDN通过智能技术生成

前提

这篇文章是《SpringBoot2.x入门》专辑的「第9篇」文章,使用的SpringBoot版本为2.3.1.RELEASEJDK版本为1.8

这篇文章会介绍一下SpringBoot如何引入和使用JPAJPA,即Java Persistence API,是一个基于O/R(对象关系)映射的标准规范(目前最新版本是JPA2.x)。所谓规范即只定义标准规则(如注解、接口),不提供实现,软件提供商可以按照标准规范来实现,而使用者只需按照规范中定义的方式来使用,而不用和软件提供商的实现打交道。

也就是说,JPA是一套规范,无论你使用哪种JPA实现,对于使用上或者编码上是一样的,不会因为提供商的改变而影响了使用

JPA的主要功能是通过注解或者XML文件描述对象 - 关系表的映射关系,并且将运行时的实体对象持久化到数据源中。JPA提供的功能如下:

  • ORM映射元数据管理
  • 定义统一的持久化API
  • 定义查询语言JPQL

目前,JPA的主流实现框架有HibernateEclipseLinkTopLinkOpenJPA等等。SpringBoot中使用的JPA实现是基于Hibernate进行整合的」

引入JPA

BOM版本管理下,直接引入spring-boot-starter-data-jpa和相关依赖就行:

<dependency>
    <groupId>org.springframework.bootgroupId>
    <artifactId>spring-boot-starter-webartifactId>
dependency>
<dependency>
    <groupId>org.springframework.bootgroupId>
    <artifactId>spring-boot-starter-jdbcartifactId>
dependency>
<dependency>
    <groupId>org.springframework.bootgroupId>
    <artifactId>spring-boot-starter-data-jpaartifactId>
dependency>
<dependency>
    <groupId>mysqlgroupId>
    <artifactId>mysql-connector-javaartifactId>
dependency>

项目的整体结构如下:

1d43d179c2c412f3200ef2ed502b175c.png

其中:

  • JpaAutoConfiguration是配置类。
  • CustomerDaoDAO类。
  • Customer为需要映射的实体类。

schema/ddl.sql的内容如下:

USE local;

DROP TABLE IF EXISTS customer;

CREATE TABLE customer
(
    id          BIGINT UNSIGNED AUTO_INCREMENT PRIMARY KEY COMMENT '主键',
    first_name  VARCHAR(8) NOT NULL COMMENT '姓氏',
    last_name   VARCHAR(8) NOT NULL COMMENT '名字',
    age         SMALLINT   NOT NULL COMMENT '年龄',
    create_time DATETIME   NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
    edit_time   DATETIME   NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '修改时间'
) COMMENT '客户表';

细说各项配置

个人认为JPA的配置项和需要注意的地方比使用MyBatis的配置项要多,这里单独使用一个章节详细分析每种配置项和需要注意的地方。首先,需要在配置类中明确定义两组扫描的目录路径或者类:

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值