springboot根据实体类生成表的实现方法

 更新时间:2024年09月10日 11:08:55   作者:小船长的炒菜猫  
本文介绍了如何通过SpringBoot工程引入SpringDataJPA,并通过实体类自动生成数据库表的过程,包括常见问题解决方法,感兴趣的可以了解一下

JPA:springboot -jpa:数据库的一系列的定义数据持久化的标准的体系

学习的目的是:
利用springboot实现对数据库的操作

第一步:添加springboot-data-jpa和数据库的依赖关系

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

        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
        </dependency>

第二步:编写yml文件的配置;

server:
  port: 8001

spring:
  application:
    name: jih-manage
  datasource:
    name: test
    url: jdbc:mysql://111.231.231.56/jih
    username: root
    password: root
    type: com.alibaba.druid.pool.DruidDataSource
    driver-class-name: com.mysql.jdbc.Driver
  jpa:
    hibernate:
      ddl-auto: update
    show-sql: true

第三步:实体类中使用的注解:

@Entity           实体类的注解
@Id               映射到表格中id的属性
@Gernertervalue   添加其自增的属性;

第四步:启动项目是否生成表格

补充的知识点:

根据实体类生成数据库的表配置文件有俩种方式分别是yml和properties文件进行配置

yml文件:

spring:
    datasource:
        driver-class-name:  com.mysql.jdbc.Driver
        url: jdbc:mysql://127.0.0.1:3306/facemap
        username: root
        password: root

    jpa:
        hibernate:
            ddl-auto: update
            show-sql: true

properties文件的写法:

spring.datasource.driver-class-name=com.mysql.jdbc.Driver
spring.datasource.url=jdbc:mysql://localhost:3306/dbgirl?characterEncoding=utf8
spring.datasource.username=root
spring.datasource.password=root

spring.jpa.show-sql= true
spring.jpa.hibernate.ddl-auto=update
spring.jpa.hibernate.dialect=org.hibernate.dialect.MySQL5Dialect
spring.jackson.serialization.indent_output=false

有更加详细介绍

首先我是通过maven创建了一个spring boot的工程,引入了Spring data jpa,结果实体类创建好之后,运行工程却没有在数据库中自动创建数据表。

找了半天发现是一个配置的问题:

hibernate.ddl-auto节点的配置,这个配置有两种方式去配置,我使用的是通过properties文件去配置:

#DataSource Config
spring.datasource.driver-class-name=com.mysql.jdbc.Driver
spring.datasource.url=jdbc:mysql://localhost:6033/data_service?characterEncoding=utf8
spring.datasource.username=root
spring.datasource.password=root

spring.jpa.show-sql= true
spring.jpa.hibernate.ddl-auto=update
spring.jpa.hibernate.dialect=org.hibernate.dialect.MySQL5Dialect
spring.jackson.serialization.indent_output=false

hibernate.hbm2ddl.auto节点的值有几个create、create-drop、update、validate、none

  • create:每次加载hibernate会自动创建表,以后启动会覆盖之前的表,所以这个值基本不用,严重会导致的数据的丢失。
  • create-drop : 每次加载hibernate时根据model类生成表,但是sessionFactory一关闭,表就自动删除,下一次启动会重新创建。
  • update:加载hibernate时根据实体类model创建数据库表,这是表名的依据是@Entity注解的值或者@Table注解的值,sessionFactory关闭表不会删除,且下一次启动会根据实体model更新结构或者有新的实体类会创建新的表。
  • validate:启动时验证表的结构,不会创建表
  • none:启动时不做任何操作

实体类的写法:

package com.example.demo;

import javax.persistence.Entity;
import javax.persistence.GeneratedValue;


@Entity //实体类的注解
public class Girl {

    @Id //@id注意选择这个javax.persistence
    @GeneratedValue
    private  Integer  id;

    private  String   cupSize;

    private  Integer   age;


    public Girl() {
    }

    public Integer getId() {
        return id;
    }

    public void setId(Integer id) {
        this.id = id;
    }

    public String getCupSize() {
        return cupSize;
    }

    public void setCupSize(String cupSize) {
        this.cupSize = cupSize;
    }

    public Integer getAge() {
        return age;
    }

    public void setAge(Integer age) {
        this.age = age;
    }
}

第五步:启动项目即可

到此这篇关于springboot根据实体类生成表的实现方法的文章就介绍到这了,更多相关springboot 实体类生成表内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • Jmeter测试时遇到的各种乱码问题及解决

    Jmeter测试时遇到的各种乱码问题及解决

    这篇文章主要介绍了Jmeter测试时遇到的各种乱码问题及解决方案,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2023-03-03
  • springBoot详解集成Swagger流程

    springBoot详解集成Swagger流程

    Swagger是一个规范和完整的框架,用于生成、描述、调用和可视化 Restful 风格的 Web 服务。总体目标是使客户端和文件系统作为服务器以同样的速度来更新。文件的方法、参数和模型紧密集成到服务器端的代码,允许API来始终保持同步
    2022-06-06
  • 利用java获取某个文件夹下的所有文件

    利用java获取某个文件夹下的所有文件

    这篇文章主要给大家介绍了关于如何利用java获取某个文件夹下的所有文件的相关资料,在从事web开发工作中,经常需要对本地某一个目录下的文件进行处理,需要的朋友可以参考下
    2023-07-07
  • MyBatisPlus+Lombok实现分页功能的方法详解

    MyBatisPlus+Lombok实现分页功能的方法详解

    Lombok是一个Java类库,提供了一组注解,简化POJO实体类开发。本文将为大家介绍一下Lombok的使用以及如何利用MyBatisPlus+Lombok实现分页功能,感兴趣的可以动手尝试一下
    2022-07-07
  • java Matcher匹配头尾截取替换字符串的案例

    java Matcher匹配头尾截取替换字符串的案例

    这篇文章主要介绍了java Matcher匹配头尾截取替换字符串的案例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-12-12
  • 利用Springboot+vue实现图片上传至数据库并显示的全过程

    利用Springboot+vue实现图片上传至数据库并显示的全过程

    最近遇到个需求,需要将图片在前端上传到服务器进行保存,然后读取到前端进行展示,这篇文章主要给大家介绍了关于利用Springboot+vue实现图片上传至数据库并显示的相关资料,需要的朋友可以参考下
    2023-04-04
  • Java四舍五入时保留指定小数位数的五种方式

    Java四舍五入时保留指定小数位数的五种方式

    这篇文章主要介绍了Java四舍五入时保留指定小数位数的五种方式,帮助大家更好的理解和使用Java,感兴趣的朋友可以了解下
    2020-09-09
  • Netty分布式Future与Promise执行回调相关逻辑剖析

    Netty分布式Future与Promise执行回调相关逻辑剖析

    这篇文章主要为大家介绍了Netty分布式Future与Promise执行回调相关逻辑剖析,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步
    2022-03-03
  • springboot json时间格式化处理的方法

    springboot json时间格式化处理的方法

    这篇文章主要介绍了springboot json时间格式化处理的方法,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-03-03
  • Java反射概念与使用实例代码

    Java反射概念与使用实例代码

    JAVA反射机制是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法,下面这篇文章主要给大家介绍了关于Java反射概念与使用的相关资料,需要的朋友可以参考下
    2021-11-11

最新评论