Spring Data JPA框架持久化存储数据到数据库


Posted in Java/Android onApril 28, 2022

1.SpringBoot项目整合JPA

1.1 pom.xml依赖

<properties>
        <java.version>1.8</java.version>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
        <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
        <spring-boot.version>2.3.7.RELEASE</spring-boot.version>
    </properties>

    <dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-data-jpa</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>

        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <scope>runtime</scope>
        </dependency>
        <dependency>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
            <exclusions>
                <exclusion>
                    <groupId>org.junit.vintage</groupId>
                    <artifactId>junit-vintage-engine</artifactId>
                </exclusion>
            </exclusions>
        </dependency>
    </dependencies>

    <dependencyManagement>
        <dependencies>
            <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-dependencies</artifactId>
                <version>${spring-boot.version}</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>
        </dependencies>
    </dependencyManagement>

1.2 application配置文件

application.yml文件如下

# 应用名称
spring:
  application:
    name: springboot-jpa01

  # jpa参数配置
  jpa:
    database: MySQL
    database-platform: org.hibernate.dialect.MySQL5InnoDBDialect
    show-sql: true
    hibernate:
      ddl-auto: update
  # 运行环境设置
  profiles:
    active: dev

# 应用服务 WEB 访问端口
server:
  port: 8080

application-dev.yml文件如下

# 应用名称
spring:
  datasource:
    driver-class-name: com.mysql.cj.jdbc.Driver
    url: jdbc:mysql://localhost:3306/yg-jpa?useUnicode=true&characterEncoding=UTF-8&zeroDateTimeBehavior=convertToNull&allowMultiQueries=true&useSSL=false&serverTimezone=GMT%2B8
    username: root
    password: root

2.创建实体类

创建与数据库表映射的实体类,绑定字段之间的对应关系,如下

package com.kkarma.web.entity;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.annotation.JsonIgnore;
import lombok.Data;
import org.hibernate.annotations.GenericGenerator;
import org.springframework.data.annotation.CreatedBy;
import org.springframework.data.annotation.CreatedDate;
import org.springframework.data.annotation.LastModifiedBy;
import org.springframework.data.annotation.LastModifiedDate;
import org.springframework.format.annotation.DateTimeFormat;

import javax.persistence.*;
import java.time.LocalDateTime;

/**
 * @Author: karma
 * @Date: 2022/3/31 0031 - 03 - 31 - 15:13
 * @Description: com.kkarma.web.entity
 * @version: 1.0
 */
@Entity
@Table(name = "sys_member")
@Data
public class Member {

    @Id()
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    @Column(name = "member_id")
    private Long memberId;

    @Column(name = "member_name", unique = true, nullable = false, length = 64)
    private String memberName;

    @Column(name = "password", length = 256)
    @JsonIgnore
    private String password;

    @Column(name = "dept_id")
    private Integer deptId;

    @Column(name = "realname", length = 64)
    private String realName;

    @Column(name = "avatar", length = 500)
    private String avatar;

    @Column(name = "phone", length = 11)
    private String phone;

    @Column(name = "email", length = 64)
    private String email;

    @Column(name = "gender", length = 1)
    private Integer gender;

    @CreatedDate
    @Column(name = "gmt_create", updatable = false)
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @JsonFormat(shape=JsonFormat.Shape.STRING, pattern="yyyy-MM-dd HH:mm:ss")
    private LocalDateTime gmtCreate;

    @CreatedBy
    @Column(name = "created_by", updatable = false, length = 64)
    private String createdBy;

    @LastModifiedDate
    @Column(name = "gmt_modified")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @JsonFormat(shape=JsonFormat.Shape.STRING, pattern="yyyy-MM-dd HH:mm:ss")
    private LocalDateTime gmtModified;

    @LastModifiedBy
    @Column(name = "updated_by", length = 64)
    private String updatedBy;

    @Column(name = "remark", length = 64)
    private String remark;
}

3.启动项目,测试验证

启动项目成功之后,会自动在数据库中创建数据库表,如果创建数据库表成功,说明JPA框架继承和配置都是OK的。

Spring Data JPA框架持久化存储数据到数据库

Spring Data JPA框架持久化存储数据到数据库

以上就是Spring Data JPA实现持久化存储数据到数据库的示例代码的详细内容!


Tags in this post...

Java/Android 相关文章推荐
Java基于字符界面的简易收银台
Jun 26 Java/Android
Java多条件判断场景中规则执行器的设计
Jun 26 Java/Android
Java 中的 Unsafe 魔法类的作用大全
Jun 26 Java/Android
Java实现二维数组和稀疏数组之间的转换
Jun 27 Java/Android
Java elasticsearch安装以及部署教程
Jun 28 Java/Android
Java反应式框架Reactor中的Mono和Flux
Jul 25 Java/Android
springboot新建项目pom.xml文件第一行报错的解决
Jan 18 Java/Android
Java中Quartz高可用定时任务快速入门
Apr 03 Java/Android
Java设计模式之代理模式
Apr 22 Java/Android
SpringBoot使用ip2region获取地理位置信息的方法
Jun 21 Java/Android
Java实现字符串转为驼峰格式的方法详解
Jul 07 Java/Android
java获取一个文本文件的编码(格式)信息
Sep 23 Java/Android
Spring Data JPA框架的核心概念和Repository接口
Java 多态分析
Java由浅入深通关抽象类与接口(下篇)
Java由浅入深通关抽象类与接口(上篇)
Mybatis-Plus 使用 @TableField 自动填充日期
Apr 26 #Java/Android
Java 写一个简单的图书管理系统
Apr 26 #Java/Android
Android使用EventBus发送消息,Fragment中接收消息的方法会执行多次
Apr 24 #Java/Android
You might like
饭制《星际争霸》Mod:优化游戏机制 增加新单位
2017/07/02 星际争霸
PHP.MVC的模板标签系统(三)
2006/09/05 PHP
一键删除顽固的空文件夹 软件下载
2007/01/26 PHP
php使用cookie实现记住用户名和密码实现代码
2015/04/27 PHP
php从文件夹随机读取文件的方法
2015/06/01 PHP
php结合web uploader插件实现分片上传文件
2016/05/10 PHP
关于PhpStorm设置点击编辑文件自动定位源文件的实现方式
2020/12/30 PHP
IE与Firefox下javascript getyear年份的兼容性写法
2007/12/20 Javascript
Javascript 读后台cookie代码
2008/09/15 Javascript
javascript引导程序
2008/10/26 Javascript
纯js实现背景图片切换效果代码
2010/11/14 Javascript
全面解析Bootstrap表单使用方法(表单控件状态)
2015/11/24 Javascript
Bootstrap3 多个模态对话框无法显示的解决方案
2017/02/23 Javascript
nodejs根据ip数组在百度地图中进行定位
2017/03/06 NodeJs
Bootstrap 时间日历插件bootstrap-datetimepicker配置与应用小结
2019/05/28 Javascript
vue组件 keep-alive 和 transition 使用详解
2019/10/11 Javascript
React倒计时功能实现代码——解耦通用
2020/09/18 Javascript
[15:09]DOTA2国际邀请赛采访专栏:Loda
2013/08/06 DOTA
Python 用户登录验证的小例子
2013/03/06 Python
python计算最小优先级队列代码分享
2013/12/18 Python
使用SAE部署Python运行环境的教程
2015/05/05 Python
在Python中操作文件之truncate()方法的使用教程
2015/05/25 Python
mac安装pytorch及系统的numpy更新方法
2018/07/26 Python
解决使用python print打印函数返回值多一个None的问题
2020/04/09 Python
pytorch 计算ConvTranspose1d输出特征大小方式
2020/06/23 Python
纯css3实现的动画按钮的实例教程
2014/11/17 HTML / CSS
Elizabeth Gage官网:英国最好的珠宝设计之一
2020/09/26 全球购物
财会自我鉴定范文
2013/12/27 职场文书
《燕子专列》教学反思
2014/02/21 职场文书
家长建议怎么写
2014/05/15 职场文书
小学生推普周国旗下讲话稿
2014/09/21 职场文书
沈阳故宫导游词
2015/01/31 职场文书
高校自主招生教师推荐信
2015/03/23 职场文书
单位推荐信范文
2015/03/27 职场文书
基于python的matplotlib制作双Y轴图
2021/04/20 Python
关于windows server 2012 DC 环境 重启后蓝屏代码:0xc00002e2的问题
2022/05/25 Servers