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 实体类生成表内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • java实现微信小程序加密数据解密算法

    java实现微信小程序加密数据解密算法

    这篇文章主要为大家详细介绍了java实现微信小程序加密数据解密算法,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2018-09-09
  • Java如何基于IO流实现同一文件读写操作

    Java如何基于IO流实现同一文件读写操作

    这篇文章主要介绍了Java如何基于IO流实现文件读写操作,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-10-10
  • java中雪花算法时钟回拨问题解决

    java中雪花算法时钟回拨问题解决

    本文介绍了分布式系统中使用雪花算法生成唯一ID时可能遇到的时钟回拨问题,以及解决这个问题的几种方法,包括等待机制、扩展位、预留时间戳或逻辑时钟等,感兴趣的可以了解一下
    2024-10-10
  • Mybatis源码解析之mapper接口的代理模式详解

    Mybatis源码解析之mapper接口的代理模式详解

    这篇文章主要介绍了Mybatis源码解析之mapper接口的代理模式详解,在mybatis中执行sql时有两种方式,一种是基于statementId,也就是直接调用SqlSession的方法,需要的朋友可以参考下
    2023-12-12
  • Mybatis实现动态SQL编写详细代码示例

    Mybatis实现动态SQL编写详细代码示例

    这篇文章主要为大家详细介绍了Mybatis中动态SQL的编写使用,动态SQL技术是一种根据特定条件动态拼装SQL语句的功能,它存在的意义是为了解决拼接SQL语句字符串时的痛点问题,感兴趣想要详细了解可以参考下文
    2023-05-05
  • Java多线程实现FTP批量上传文件

    Java多线程实现FTP批量上传文件

    这篇文章主要为大家详细介绍了Java多线程实现FTP批量上传文件,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2022-06-06
  • Java使用Socket通信传输文件的方法示例

    Java使用Socket通信传输文件的方法示例

    这篇文章主要介绍了Java使用Socket通信传输文件的方法,结合实例形式分析了java socket编程实现文件传输操作的相关技巧,需要的朋友可以参考下
    2017-06-06
  • MyBatis-plus实现逆向生成器

    MyBatis-plus实现逆向生成器

    本文主要介绍了MyBatis-plus实现逆向生成器,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2022-08-08
  • Java 添加、读取和删除 Excel 批注的操作代码

    Java 添加、读取和删除 Excel 批注的操作代码

    这篇文章主要介绍了Java 添加、读取和删除 Excel 批注的操作方法,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-04-04
  • SpringMVC的处理器拦截器HandlerInterceptor详解

    SpringMVC的处理器拦截器HandlerInterceptor详解

    这篇文章主要介绍了SpringMVC的处理器拦截器HandlerInterceptor详解,SpringWebMVC的处理器拦截器,类似于Servlet开发中的过滤器Filter,用于处理器进行预处理和后处理,需要的朋友可以参考下
    2024-01-01

最新评论