Spring Boot H2 数据库18 Mar 2025 | 8 分钟阅读 什么是内存数据库内存数据库依赖于系统内存而不是磁盘空间来存储数据。由于内存访问速度比磁盘访问速度快。当我们不需要持久化数据时,我们使用内存数据库。内存数据库是一个嵌入式数据库。默认情况下,内存数据库是易失性的,当我们重新启动应用程序时,所有存储的数据都会丢失。 广泛使用的内存数据库有 H2, HSQLDB (HyperSQL Database), 和 Apache Derby. 它会自动创建配置。 持久性数据库与内存数据库持久性数据库将数据保存在物理内存中。即使数据库服务器重新启动,数据也将可用。一些流行的持久性数据库包括 Oracle, MySQL, Postgres, 等。 对于内存数据库,数据存储在系统内存中。程序关闭时会丢失数据。它对 POC(概念验证)很有用,而不是用于生产应用程序。广泛使用的内存数据库是 H2。 什么是 H2 数据库H2 是一个 嵌入式、开源 和 内存 数据库。它是一个用 Java 编写的关系数据库管理系统。它是一个 客户端/服务器 应用程序。它通常用于 单元测试。它将数据存储在内存中,而不是将数据持久保存在磁盘上。 优点
配置 H2 数据库如果我们想在应用程序中使用 H2 数据库,我们需要在 pom.xml 文件中添加以下依赖项 添加依赖项后,我们需要配置 H2 数据库的 数据源 URL、驱动程序类名、用户名 和 密码。Spring Boot 提供了一种在 application.properties 文件中配置这些属性的简便方法。 在 spring.datasource.url 属性中,mem 是内存数据库的名称,testdb 是 H2 提供的模式名称,默认情况下。我们也可以定义我们自己的模式和数据库。默认用户名是 sa,空白密码表示 空 密码。如果我们想更改用户名和密码,我们可以覆盖这些值。 在 H2 数据库中持久化数据如果我们想在 H2 数据库中持久化数据,我们应该将数据存储在文件中。为了实现同样的目的,我们需要更改数据源 URL 属性。 在上面的属性中,sampledata 是文件名。 创建模式并填充数据我们可以通过在 resource 文件夹 (src/main/resource) 中创建一个 SQL 文件来定义模式。 schema.sql 我们可以通过在 resource 文件夹 (src/main/resource) 中创建一个 SQL 文件来填充表中的数据。 data.sql Spring Boot 会自动拾取 data.sql 文件并在应用程序启动期间针对 H2 数据库运行它。 H2 控制台默认情况下,H2 数据库的控制台视图已禁用。在访问 H2 数据库之前,我们必须使用以下属性启用它。 启用 H2 控制台后,我们现在可以通过调用 URL https://:8080/h2-console 在浏览器中访问 H2 控制台。下图显示了 H2 数据库的控制台视图。 ![]() 在上面的截图,我们定义了自己的名为 javatpoint 的数据库。 Spring Boot H2 示例让我们设置一个带有 H2 数据库的 Spring Boot 应用程序。 步骤1: 打开Spring Initializr http://start.spring.io。 步骤 2: 选择 Spring Boot 版本 2.3.0.M1。 步骤 2:提供Group 名称。我们提供了 com.javatpoint。 步骤 3: 提供 Artifact Id。我们提供了 spring-boot-h2-database-example. 步骤 5: 添加依赖项 Spring Web, Spring Data JPA, 和 H2 数据库。 步骤 6: 单击 Generate 按钮。当我们单击 Generate 按钮时,它会将项目打包成一个 Jar 文件并将其下载到本地系统。 ![]() 步骤 7: 解压 Jar 文件并将其粘贴到 STS 工作区中。 步骤 8: 导入 项目文件夹到 STS 中。 文件 -> 导入 -> 现有 Maven 项目 -> 浏览 -> 选择文件夹 spring-boot-h2-database-example -> 完成 它需要一些时间来导入。 步骤 9: 在文件夹 src/main/java 中创建一个名为 com.javatpoint.model 的包。 步骤 10: 在包 com.javatpoint.model 中创建一个模型类。我们创建了一个名为 Student 的模型类。在 Books 类中,我们做了以下操作
Student.java 步骤 11: 在文件夹 src/main/java 中创建一个名为 com.javatpoint.controller 的包。 步骤 12: 在包 com.javatpoint.controller 中创建一个 Controller 类。我们创建了一个名为 StudentController 的控制器类。在 StudentController 类中,我们做了以下操作
StudentController.java 步骤 13: 在文件夹 src/main/java 中创建一个名为 com.javatpoint.service 的包。 步骤 14: 创建一个 Service 类。我们在包 com.javatpoint.service 中创建了一个名为 StudentService 的服务类。 StudentService.java 步骤 15: 在文件夹 src/main/java 中创建一个名为 com.javatpoint.repository 的包。 步骤 16: 创建一个 Repository 接口。我们在包 com.javatpoint.repository 中创建了一个名为 StudentRepository 的存储库接口。它扩展了 Crud Repository 接口。 StudentRepository.java 现在我们将配置 URL、驱动程序类名、用户名 和 密码,在 application.properties 文件中。 步骤 17: 打开 application.properties 文件并配置以下属性。 application.properties 注意:不要忘记启用 H2 控制台。创建所有类和包后,项目目录如下所示。 ![]() 现在我们将运行该应用程序。 步骤 18: 打开 SpringBootH2DatabaseExampleApplication.java 文件并将其作为 Java 应用程序运行。 SpringBootH2DatabaseExampleApplication.java 在下一步中,我们将使用 REST 客户端 Postman 来发送 POST 和 GET 请求。如果您的系统尚未安装 Postman,请按照以下步骤操作
步骤 19: 打开 Postman 并执行以下操作
当请求成功执行时,它会显示 状态:200 OK。这意味着记录已成功插入数据库中。 同样,我们插入了以下数据。 让我们访问 H2 控制台以查看数据。 步骤 20: 打开浏览器并调用 URL https://:8080/h2-console。单击 Connect 按钮,如下所示。 ![]() 单击 Connect 按钮后,我们在数据库中看到 Student 表,如下所示。 ![]() 步骤 21: 单击 Student 表,然后单击 Run 按钮。该表显示了我们在正文中插入的数据。 ![]() 步骤 22: 打开 Postman 并发送 GET 请求。它返回我们插入数据库中的数据。 ![]() 让我们发送一个 GET 请求,其 URL 为 https://:8080/student/{id}。我们调用了 URL https://:8080/student/3。它返回 id 为 3 的学生的详细信息。 ![]() 同样,我们也可以发送一个 DELETE 请求。假设我们要删除 id 为 2 的学生记录。 要删除学生记录,请发送一个 DELETE 请求,其 URL 为 https://:8080/student/2。我们看到 id 为 2 的学生已从数据库中删除。 ![]() |
我们请求您订阅我们的新闻通讯以获取最新更新。