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日

相关文章

  • mybatis中Oracle参数为NULL错误问题及解决

    问题描述: 在使用MyBatis操作Oracle数据库时,如果Mapper文件中的参数值为NULL,则会出现SQL异常,例如: Error querying database. Cause: java.sql.SQLSyntaxErrorException: ORA-00936: 缺失表达式 The error may exist in com/exampl…

    database 2023年5月18日
    00
  • SQL中ALTER和UPDATE命令的区别

    ALTER和UPDATE都是SQL命令,但它们的作用不同。 ALTER命令 ALTER命令主要用于修改数据库表的结构,比如添加、删除或改变列的属性。 以下是ALTER命令的语法: ALTER TABLE table_name ADD COLUMN column_name data_type optional_arguments; 在这个语句中,ALTER T…

    database 2023年3月27日
    00
  • Mysql IP类型转换

    Mysql IP类型转换 inet_aton:将ip地址转换成数字型 (ip_net_address_to_number)inet_ntoa:将数字型转换成ip地址 (ip_net_number_to_address) 使用示例: SELECT INET_ATON(‘254.161.167.28’); -> 4272006940 SELECT INET…

    MySQL 2023年4月13日
    00
  • Linux服务器被黑以后的详细处理步骤

    当Linux服务器被黑时,需要采取详细的处理步骤才能确保系统的安全。下面,我将提供一份完整的攻略,包含必要的步骤和示例,帮助您认真处理这个问题。 1. 确认服务器被黑 在开始处理之前,需要先确认服务器是否真的被黑了。以下是一些常见的指标: 系统性能下降或异常 系统日志中出现未知或异常的登录记录 未知的、新的或异常的用户账户 系统文件或配置文件的修改、删除或新…

    database 2023年5月22日
    00
  • mysql的内连接,左连接和右链接查询详解

    MySQL的内连接、左连接和右连接查询详解 内连接(Inner Join) 内连接也叫等值连接,表示两张表中字段相等的数据行才会被查询出来。内连接常用的语法格式是: SELECT column_name(s) FROM table1 INNER JOIN table2 ON table1.column_name = table2.column_name; 示…

    database 2023年5月22日
    00
  • 多阶段构建优化Go 程序Docker镜像

    关于多阶段构建优化Go程序Docker镜像的攻略,我会分以下几个部分进行详细讲解: 需求说明 Docker多阶段构建简介 Go程序的多阶段构建优化 示例1:基于multi-stage构建MySQL Go应用镜像 示例2:基于multi-stage构建Golang静态网站镜像 1. 需求说明 在使用Docker部署Go程序时,一般会通过Dockerfile构建…

    database 2023年5月22日
    00
  • MongoDB常用的4种管理工具

    MongoDB是当下非常流行的NoSQL数据库,在使用中需要使用各种管理工具来提高效率和减少操作难度。本文将为大家详解MongoDB管理工具的完整攻略,包括常用的GUI和命令行工具。 GUI工具 Robo 3T Robo 3T是一个开源的MongoDB管理工具,提供了直观的GUI来管理MongoDB数据库。 (1)连接MongoDB服务器 首先需要连接到Mo…

    MongoDB 2023年3月14日
    00
  • MySQL5.0存储过程教程

    MySQL5.0存储过程教程 数据库中的存储过程是一类预编译的代码块,它们能够被存储在数据库中,并在需要的时候进行调用。MySQL5.0支持存储过程的创建,使用存储过程可以提高数据库应用程序的性能并简化开发流程。 创建存储过程 在MySQL中,可以使用CREATE PROCEDURE语句来创建存储过程。具体语法如下: CREATE [DEFINER = us…

    database 2023年5月22日
    00
合作推广
合作推广
分享本页
返回顶部