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 18 Java/Android
Java框架入门之简单介绍SpringBoot框架
Jun 18 Java/Android
Java基于字符界面的简易收银台
Jun 26 Java/Android
Java基础之详解HashSet的使用方法
Jun 30 Java/Android
浅谈resultMap的用法及关联结果集映射
Jun 30 Java/Android
Java Socket实现多人聊天系统
Jul 15 Java/Android
dubbo服务整合zipkin详解
Jul 26 Java/Android
springboot 启动如何排除某些bean的注入
Aug 02 Java/Android
Java tomcat手动配置servlet详解
Nov 27 Java/Android
剑指Offer之Java算法习题精讲二叉树专项训练
Mar 21 Java/Android
Spring Security使用单点登录的权限功能
Apr 03 Java/Android
Java Spring Lifecycle的使用
May 06 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
simplehtmldom Doc api帮助文档
2012/03/26 PHP
作为PHP程序员应该了解MongoDB的五件事
2013/06/03 PHP
php的数组与字符串的转换函数整理汇总
2013/07/18 PHP
PHP yii实现model添加默认值的方法(两种方法)
2016/11/10 PHP
PHP ADODB生成HTML表格函数rs2html功能【附错误处理函数用法】
2018/05/29 PHP
php 获取xml接口数据的处理方法
2018/05/31 PHP
PHP使用PDO、mysqli扩展实现与数据库交互操作详解
2019/07/20 PHP
Aster vs KG BO3 第一场2.19
2021/03/10 DOTA
一个JavaScript继承的实现
2006/10/24 Javascript
jquery ajax提交表单数据的两种实现方法
2010/04/29 Javascript
JS获取浏览器版本及名称实现函数
2013/04/02 Javascript
浅谈javascript中基本包装类型
2015/06/03 Javascript
jquery简单实现幻灯片的方法
2015/08/03 Javascript
BootStrap文件上传样式超好看【持续更新】
2016/05/10 Javascript
理解JavaScript原型链
2016/10/25 Javascript
微信小程序实战之登录页面制作(5)
2020/03/30 Javascript
node.js使用redis储存session的方法
2018/09/26 Javascript
2种在vue项目中使用百度地图的简单方法
2018/09/28 Javascript
基于Vue组件化的日期联动选择器功能的实现代码
2018/11/30 Javascript
原生javascript运动函数的封装示例【匀速、抛物线、多属性的运动等】
2020/02/23 Javascript
功能完善的小程序日历组件的实现
2020/03/31 Javascript
Python获取某一天是星期几的方法示例
2017/01/17 Python
PyQt5实现无边框窗口的标题拖动和窗口缩放
2018/04/19 Python
解决安装tensorflow遇到无法卸载numpy 1.8.0rc1的问题
2018/06/13 Python
CSS3中的opacity属性使用教程
2015/08/19 HTML / CSS
ProBikeKit新西兰:自行车套件,跑步和铁人三项装备
2017/04/05 全球购物
阿迪达斯德国官方网站:adidas德国
2017/07/12 全球购物
大学生毕业自我鉴定范文
2013/11/03 职场文书
小摄影师教学反思
2014/04/27 职场文书
本科毕业生应聘自荐信范文
2014/06/26 职场文书
纯CSS实现hover图片pop-out弹出效果的实例代码
2021/04/16 HTML / CSS
MySQL 使用自定义变量进行查询优化
2021/05/14 MySQL
详解Redis基本命令与使用场景
2021/06/01 Redis
MySQL一些常用高级SQL语句
2021/07/03 MySQL
Windows server 2012 NTP时间同步的实现
2022/06/25 Servers
win10音频服务未响应怎么解决?win10音频服务未响应未修复的解决方法
2022/08/14 数码科技