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 11 Java/Android
Java各种比较对象的方式的对比总结
Jun 20 Java/Android
分析设计模式之模板方法Java实现
Jun 23 Java/Android
Java并发编程之详解CyclicBarrier线程同步
Jun 23 Java/Android
每日六道java新手入门面试题,通往自由的道路
Jun 30 Java/Android
Java中多线程下载图片并压缩能提高效率吗
Jul 01 Java/Android
dubbo集成zipkin获取Traceid的实现
Jul 26 Java/Android
聊聊SpringBoot自动装配的魔力
Nov 17 Java/Android
alibaba seata服务端具体实现
Feb 24 Java/Android
springboot入门 之profile设置方式
Apr 04 Java/Android
Spring Data JPA框架Repository自定义实现
Apr 28 Java/Android
springboot 全局异常处理和统一响应对象的处理方式
Jun 28 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
php中Session的生成机制、回收机制和存储机制探究
2014/08/19 PHP
PHP中的表达式简述
2016/05/29 PHP
php 二维数组时间排序实现代码
2016/11/19 PHP
PHP常用正则表达式精选(推荐)
2019/05/28 PHP
PHP时间类完整代码实例
2021/02/26 PHP
JS中简单的实现像C#中using功能(有源码下载)
2007/01/09 Javascript
判断控件是否已加载完成的代码
2010/02/24 Javascript
也说JavaScript中String类的replace函数
2011/09/22 Javascript
js运动框架_包括图片的淡入淡出效果
2013/05/11 Javascript
一个php+js实时显示时间问题
2015/10/12 Javascript
Node.js的项目构建工具Grunt的安装与配置教程
2016/05/12 Javascript
浅谈angular懒加载的一些坑
2016/08/20 Javascript
jquery表单验证实例仿Toast提示效果
2017/03/03 Javascript
Vue 单文件中的数据传递示例
2017/03/21 Javascript
详解Vue中使用v-for语句抛出错误的解决方案
2017/05/04 Javascript
JS如何设置元素样式的方法示例
2017/08/28 Javascript
基于Vue框架vux组件库实现上拉刷新功能
2017/11/28 Javascript
原生JS实现多个小球碰撞反弹效果示例
2018/01/31 Javascript
bootstrap与pagehelper实现分页效果
2018/12/29 Javascript
Python Web框架Flask中使用新浪SAE云存储实例
2015/02/08 Python
Python Opencv 通过轨迹(跟踪)栏实现更改整张图像的背景颜色
2020/03/09 Python
python实现横向拼接图片
2020/03/23 Python
Python实现自动打开电脑应用的示例代码
2020/04/17 Python
python写文件时覆盖原来的实例方法
2020/07/22 Python
工程部主管岗位职责
2013/11/17 职场文书
心得体会范文
2014/01/04 职场文书
关于工资低的辞职信
2014/01/14 职场文书
元旦晚会邀请函
2014/01/27 职场文书
体育教师自我鉴定
2014/02/12 职场文书
共产党员承诺书
2014/03/25 职场文书
寒假家长评语大全
2014/04/16 职场文书
三八妇女节活动总结
2014/05/04 职场文书
公务员四风问题对照检查材料整改措施
2014/09/26 职场文书
2015年暑假生活总结
2015/07/13 职场文书
2015质检员个人年终工作总结
2015/10/23 职场文书
解决Python中的modf()函数取小数部分不准确问题
2021/05/28 Python