Springboot启动同时创建数据库和表实现方法

 更新时间:2023年01月14日 11:10:13   作者:风.foxwho  
这篇文章主要介绍了Springboot启动同时创建数据库和表,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习吧

自动创建数据库

spring boot 自带 如果数据库不存在,可以自动创建数据库

spring.datasource.url=jdbc:mysql://localhost:3306/test?createDatabaseIfNotExist=true&characterEncoding=utf8mb4&useSSL=false&allowPublicKeyRetrieval=true

createDatabaseIfNotExist=true 数据库连接加此参数即可,但是数据库名称,中间不可以有 - 字符(横线 或 减号),但 下划线可以

自动创建表

引用包

    api('org.springframework.boot:spring-boot-starter-web:2.6.2')
    api('org.springframework.boot:spring-boot-starter-data-jpa:2.6.2')
    implementation('mysql:mysql-connector-java:8.0.27')

使用 JPA 设置库表对应实体

/**
 * 设备相关的所有日志
 */
@Data
@Entity
@Table(name = "test")
public class Test
     /**
    * id
     **/
     @Id
     @GeneratedValue(strategy = GenerationType.IDENTITY)
	private Integer id;
    /**
    * 名称
     **/
	private String name;
}

在启动时会自动 创建 表,如果表已经存在,但新增加的字段不存在那么,会自动创建字段,如果字段已经存在,那么什么也不改变。

所以,如果实体对应的字段 类型变了,需要手动去更改字段类型

此处受spring.jpa.hibernate.ddl-auto配置影响

自动执行初始化sql 文件

配置如下

spring.sql.init.mode=always
spring.jpa.hibernate.ddl-auto=update
spring.jpa.show-sql=true

ddl-auto 枚举:
none(默认):禁用DDL处理
validate:验证schema,不做任何操作
update: 更新schema
create: 删除表,重新创建schema
create-drop: 会话创建时创建schema,会话关闭时销毁schema

初始化时,如果 resources目录下存在 schema.sql文件和data.sql文件,那么会自动执行。

如果文件不存在则不执行。

使用最多时data.sql文件,自动生成一些定义好的数据

到此这篇关于Springboot启动同时创建数据库和表实现方法的文章就介绍到这了,更多相关Springboot创建数据库内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • MyBatisPlus中事务处理的实现

    MyBatisPlus中事务处理的实现

    本文主要介绍了MyBatisPlus中事务处理的实现,包括事务的开启、提交、回滚等操作,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2024-07-07
  • java基础之方法和方法的重载详解

    java基础之方法和方法的重载详解

    这篇文章主要介绍了java基础之方法和方法的重载详解,文中有非常详细的代码示例,对正在学习java基础的小伙伴们有很好的帮助,需要的朋友可以参考下
    2021-05-05
  • Java上传文件图片到服务器的方法

    Java上传文件图片到服务器的方法

    这篇文章主要为大家详细介绍了Java上传文件图片到服务器的方法,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2018-01-01
  • MyBatis Plus Mapper CRUD接口测试方式

    MyBatis Plus Mapper CRUD接口测试方式

    在数据库管理系统中,插入记录是添加新数据条目,而删除操作包括根据主键ID单条删除和批量删除,也可以基于特定条件进行删除,删除操作的SQL语句是通过键值对在Map中拼接而成,如delete from 表 where key1=value1 AND key2=value2
    2024-09-09
  • Java 泛型超详细入门讲解

    Java 泛型超详细入门讲解

    这篇文章主要介绍了Java基础泛型详情,泛型是JDK5中引入的特性,它提供了编译时类型安全检测机制,该机制允许在编译时检测到非法的类型,下面文章的详细介绍,需要的朋友可以参考一下
    2022-04-04
  • MyBatis动态Sql之if标签的用法详解

    MyBatis动态Sql之if标签的用法详解

    这篇文章主要介绍了MyBatis动态Sql之if标签的用法,本文给大家介绍的非常详细,具有一定的参考借鉴价值 ,需要的朋友可以参考下
    2019-07-07
  • java -jar启动服务并输出日志常用命令小结

    java -jar启动服务并输出日志常用命令小结

    这篇文章主要介绍了在Linux环境下运行JAR包的几种方法,包括在命令结尾添加&使其在后台运行,使用nohup使程序不挂断运行,以及将日志输出到指定文件或丢弃,文中通过代码介绍的非常详细,需要的朋友可以参考下
    2025-03-03
  • 详解什么是Java线程池的拒绝策略?

    详解什么是Java线程池的拒绝策略?

    今天给大家总结一下线程池的拒绝策略,文中有非常详细的介绍及代码示例,对正在学习java的小伙伴们有很好地帮助,需要的朋友可以参考下
    2021-05-05
  • SpringBoot feign动态设置数据源(https请求)

    SpringBoot feign动态设置数据源(https请求)

    这篇文章主要介绍了SpringBoot如何在运行时feign动态添加数据源,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2021-08-08
  • Mapreduce分布式并行编程

    Mapreduce分布式并行编程

    这篇文章主要为大家介绍了Mapreduce分布式并行编程使用详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-08-08

最新评论