springboot 启动时初始化数据库的步骤

为了在Spring Boot启动时初始化数据库,需要遵循以下步骤:

1.创建一个SQL文件

首先,我们需要创建一个SQL文件,里面包含我们要初始化的数据。文件可以是任何带有SQL语句的文本文件。以下是文件的示例:

INSERT INTO users (id, name, email, password) VALUES
  (1, 'John Doe', 'john@example.com', 'password123'),
  (2, 'Jane Doe', 'jane@example.com', 'password456'),
  (3, 'Bob Smith', 'bob@example.com', 'password789');

在此示例中,我们想要向名为“users”的表中插入三个用户。

2. 配置数据源

我们需要在application.properties文件中定义数据源。以下示例展示了如何定义PostgreSQL的数据源:

spring.datasource.url=jdbc:postgresql://localhost:5432/mydatabase
spring.datasource.username=myuser
spring.datasource.password=mypassword
spring.datasource.driver-class-name=org.postgresql.Driver
spring.jpa.generate-ddl=true
spring.jpa.hibernate.ddl-auto=create

在此示例中,我们定义了用于连接到PostgreSQL数据库的URL,用户名和密码。我们也可以使用其他的数据库,需要修改对应的URL和驱动程序类名。

3. 配置初始化脚本

接下来,在application.properties文件中配置初始化SQL脚本。例如,假设我们有一个名为“init.sql”的文件,包含了我们要初始化的数据:

spring.datasource.initialization-mode=always
spring.datasource.data=classpath:init.sql

在此示例中,“spring.datasource.initialization-mode”属性设置为“always”,表示每次启动应用程序时,都会运行脚本。如果希望仅在应用程序首次启动时运行脚本,则可以将其设置为“embedded”。

此外,“spring.datasource.data”属性指定了SQL文件的路径。在此示例中,我们在classpath下定义了一个名为“init.sql”的文件。

示例:使用H2数据库

以下是一个使用H2数据库的完整示例,包含初始化SQL脚本。

1.创建一个SQL文件

我们将在初始化过程中向名为“users”的表中插入一些数据,我们需要创建一个名为“init.sql”的文件,包含以下内容:

DROP TABLE IF EXISTS users;

CREATE TABLE users (
  id INTEGER PRIMARY KEY AUTO_INCREMENT,
  name VARCHAR(255) NOT NULL,
  email VARCHAR(255) NOT NULL,
  password VARCHAR(255) NOT NULL
);

INSERT INTO users (name, email, password) VALUES
  ('John Doe', 'john@example.com', 'password123'),
  ('Jane Doe', 'jane@example.com', 'password456'),
  ('Bob Smith', 'bob@example.com', 'password789');

在此示例中,我们创建一个名为“users”的表,并向该表中插入三个用户。

2. 配置数据源

我们需要在application.properties文件中配置H2数据源, 以下示例展示了如何配置:

spring.datasource.url=jdbc:h2:mem:test
spring.datasource.username=sa
spring.datasource.password=
spring.datasource.driver-class-name=org.h2.Driver
spring.jpa.generate-ddl=true
spring.jpa.hibernate.ddl-auto=create

在此示例中,我们使用了In-Memory数据库,URL前缀是“jdbc:h2:mem:”,后面指定了数据库名字和其他配置属性。

3. 配置初始化脚本

接下来,在application.properties文件中配置初始化SQL脚本为:

spring.datasource.initialization-mode=always
spring.datasource.data=classpath:init.sql

在这里,我们设置了“spring.datasource.initialization-mode”属性为“always”,以便每次启动应用程序时运行脚本。在“spring.datasource.data”中,我们指定了SQL文件的位置和名称。

这样就完成了数据库初始化的所有步骤。现在每次启动应用程序时,H2数据库将自动创建并填充“users”表。

示例:使用MySQL数据库

以下是使用MySQL数据库初始化数据的完整示例。

1.创建一个SQL文件

我们将在初始化过程中向名为“users”的表中插入一些数据,我们需要创建一个名为“init.sql”的文件,包含以下内容:

DROP TABLE IF EXISTS users;

CREATE TABLE users (
  id INTEGER PRIMARY KEY AUTO_INCREMENT,
  name VARCHAR(255) NOT NULL,
  email VARCHAR(255) NOT NULL,
  password VARCHAR(255) NOT NULL
);

INSERT INTO users (name, email, password) VALUES
  ('John Doe', 'john@example.com', 'password123'),
  ('Jane Doe', 'jane@example.com', 'password456'),
  ('Bob Smith', 'bob@example.com', 'password789');

在此示例中,我们创建一个名为“users”的表,并向该表中插入三个用户。

2. 配置数据源

我们需要在application.properties文件中配置MySQL数据源, 以下示例展示了如何配置:

spring.datasource.url=jdbc:mysql://localhost:3306/mydatabase
spring.datasource.username=myuser
spring.datasource.password=mypassword
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
spring.jpa.generate-ddl=true
spring.jpa.hibernate.ddl-auto=create

在此示例中,我们使用MySQL数据库,URL中指定了数据库的名称和位置,以及我们的用户名和密码。

3. 配置初始化脚本

接下来,在application.properties文件中配置初始化SQL脚本为:

spring.datasource.initialization-mode=always
spring.datasource.data=classpath:init.sql

在这里,我们设置了“spring.datasource.initialization-mode”属性为“always”,以便每次启动应用程序时运行脚本。在“spring.datasource.data”中,我们指定了SQL文件的位置和名称。

这样就完成了数据库初始化的所有步骤。现在每次启动应用程序时,MySQL数据库将自动创建并填充“users”表。

以上就是Spring Boot在启动时初始化数据库的所有步骤,通过这些步骤,可以方便地自动填充数据库。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:springboot 启动时初始化数据库的步骤 - Python技术站

(0)
上一篇 2023年5月22日
下一篇 2023年5月22日

相关文章

  • Java实现七牛云文件图片上传下载

    下面是Java实现七牛云文件图片上传下载的完整攻略: 什么是七牛云 七牛云是一个云存储服务提供商,用户可以基于七牛云提供的 API 或者 SDK 进行文件上传、下载、管理、转码等操作。在开发过程中,我们可以直接调用七牛云提供的 API 或者使用已有的 SDK 完成操作。 Java 实现七牛云文件图片上传下载 引入七牛云的 SDK 首先需要引入七牛云的 SDK…

    database 2023年5月22日
    00
  • MySQL必备的常见知识点汇总整理

    MySQL必备的常见知识点汇总整理 MySQL是一款常用的关系型数据库管理系统,具备高效、安全、可靠、易于使用等特性。它可以通过命令行和可视化工具进行管理和操作。为了让用户更好地理解MySQL,本文从必备的常见知识点出发进行汇总整理。 数据类型 MySQL支持多种数据类型,包括整型、浮点型、字符型、日期型等。数据类型不仅影响到数据在内存中的存储形式,还会影响…

    database 2023年5月22日
    00
  • SQL 行值轮转

    下面将详细讲解SQL行值轮转的攻略。 什么是SQL行值轮转? SQL行值轮转(Row Value Transposition),也称为行转列、透视表,是将原始数据行转换为新的数据列的一个过程。通常情况下,我们从数据库中获取的数据是以行的形式呈现的,如果要将这些行数据“横向”展示,可以使用SQL行值轮转。 SQL行值轮转的语法 SQL行值轮转有不同的语法,此处…

    database 2023年3月27日
    00
  • redis 击穿、穿透、雪崩产生原因及解决方案

    引用:redis 击穿、穿透、雪崩产生原因及解决方案 – AmourLee – 博客园https://www.cnblogs.com/dongl961230/p/15337415.html   一、前言 从架构的一个整体性来看,redis产生击穿、穿透、雪崩的情况的前提条件都是redis做缓存使用,并且产生了高并发,正常情况下我们利用关系型数据库(mysql…

    Redis 2023年4月11日
    00
  • Python+WordPress制作小说站

    下面是“Python+WordPress制作小说站”的完整攻略。 准备工作 在开始制作小说站之前,需要先准备一些工具和环境: 一台安装了WordPress的服务器或云主机,推荐使用Linux系统; Python 3.x环境,可以在服务器上安装或在本地搭建环境,用于爬取小说数据并生成网页; 数据库管理工具,例如phpMyAdmin,用于管理WordPress的…

    database 2023年5月22日
    00
  • DBMS中触发器和过程的区别

    DBMS中触发器和过程都是数据库中的一种对象,主要是为了实现数据库的自动化操作和处理,但是它们在实现方式和作用上有很大的差异。下面我将详细讲解它们之间的区别。 触发器(Trigger) 触发器是一种特殊的存储过程,它是与一个特定的表关联的操作,当该表上的数据发生特定的事件时(如修改、插入或删除),就会自动触发执行特定的脚本。触发器可以用于维护数据完整性、更新…

    database 2023年3月27日
    00
  • MySQL中exists、in及any的基本用法

    MySQL中exists、in及any都是用于子查询的操作符,在查询数据时都具备不同的作用。 EXISTS EXISTS是一个判断子查询结果是否存在的操作符,用于查询关联表存在某种条件的记录。它的语法如下: SELECT column_name, column_name FROM table_name WHERE EXISTS (SELECT column_…

    database 2023年5月22日
    00
  • Redis bitmap位图操作方法详解

    Redis的位图(Bitmap)是一种高效的数据结构,可以在极小的内存空间内存储大量的二进制数据。它是由一系列二进制位组成的连续序列,每个二进制位只能是0或1。 Redis提供了一系列操作命令,可以对位图进行高效的位操作,如设置、获取、统计、逻辑运算等。在平时开发过程中,经常会有一些 bool 类型数据需要存取。比如记录用户一年内签到的次数,签了是 1,没签…

    Redis 2023年3月18日
    00
合作推广
合作推广
分享本页
返回顶部