Spring Boot 使用 H2 数据库的控制台(Console)

简介:

如果你希望在 Spring Boot 启用 H2 数据库的话,这篇文章适合你进行了解。

概述

在这个指南中,我们将会考虑如何在  Spring Boot 中使用 H2 数据库。

与其他数据库相似,Spring Boot 生态系统中能够完全支持 H2 数据库

依赖(Dependencies)

让我们首先需要定义 H2 数据库依赖:https://search.maven.org/search?q=g:com.h2database

同时我们还需要使用 spring-boot-starter-data-jpa 依赖:https://search.maven.org/search?q=a:spring-boot-starter-data-jpa


    org.springframework.boot
    spring-boot-starter-data-jpa
    2.1.4.RELEASE


    com.h2database
    h2
    runtime
    1.4.199

与其他的 Spring Boot 管理相似,通常你不需要为你使用的 Spring Boot 指定版本号。

数据库配置

在默认的情况下,Spring Boot 将会配置 H2 数据库使用 sa 为用户名,用户名密码为空。

当然你可以可以通过修改 application.properties  文件中配置文件来为你的 H2 数据库指定登录的用户名和密码。

spring.datasource.url=jdbc:h2:mem:testdb
spring.datasource.driverClassName=org.h2.Driver
spring.datasource.username=sa
spring.datasource.password=password
spring.jpa.database-platform=org.hibernate.dialect.H2Dialect

如果你使用的 H2 基于内存的数据库的话,你所有存储在内存中的数据将会在你重新启动服务器的时候完全丢失。

如果你希望避免这个情况的话,你可以使用基于文件存储的数据库,你可以通过下面的参数修改为基于文件使用的数据库,修改 spring.datasource.url: 参数为

spring.datasource.url=jdbc:h2:file:/data/demo

文件系统使用的路径为绝对路径,有关 H2 数据库配置的方法,请参考 http://www.h2database.com/html/features.html#connection_modes 页面中的内容。

数据库选项

Spring Boot 整合 H2 提供的增删改查(CRUD)与普通数据库的增删改查是相似的。请参考 https://www.baeldung.com/persistence-with-spring-series 页面中获得更多的有关数据持久化相关的信息。

在这里,请将 data.sql 文件添加到 src/main/resources 目录下面:

DROP TABLE IF EXISTS billionaires;
 
CREATE TABLE billionaires (
  id INT AUTO_INCREMENT  PRIMARY KEY,
  first_name VARCHAR(250) NOT NULL,
  last_name VARCHAR(250) NOT NULL,
  career VARCHAR(250) DEFAULT NULL
);
 
INSERT INTO billionaires (first_name, last_name, career) VALUES
  ('Aliko', 'Dangote', 'Billionaire Industrialist'),
  ('Bill', 'Gates', 'Billionaire Tech Entrepreneur'),
  ('Folrunsho', 'Alakija', 'Billionaire Oil Magnate');

Spring Boot 将会在系统应用程序启动后,将会自动选择  data.sql 文件然后在我们的 H2 数据库中进行配置。

这种方式是对使用的数据库进行进行测试的比较好的办法。

访问 H2 控制台

H2 数据库有一个嵌入式 GUI 控制台能够让你对数据库的内容进行查询和运行  SQL。

在默认情况下,H2 的控制台没有嵌入到 Spring 中。所以你需要对这个控制台工具进行启用,请在 application.properties 文件中添加下面的参数:

spring.h2.console.enabled=true

在启用上面的参数后,如果你启用了 Spring Boot 应用程序,你可以导航到 http://localhost:8080/h2-console界面中,在这个界面中首先将会显示登录界面。

在登录界面中适用的登录信息是你在 application.properties 文件中指定的登录信息。

2020_04_04_23_00_12

一旦你成功连接到控制台后,我们将会看到一个完整的控制台界面。

在这个完整的控制台界面中的作出,你将会看到 H2 数据库中所有的数据表,同时还包含有一个文本对话框中包含了可以运行的 SQL 查询:

2020_04_04_23_00_33

在这个 Web 的控制台界面中,具有自动完成 SQL 关键字的功能。这个功能能够让给控制台更加轻量的运行并且具有 SQL 关键字帮助的功能,能够让你在文本对话框中直接运行 SQL 脚本。

更进一步,我们将会在 application.properties 中配置更多的参数能够满足你的对当前项目的需求:

spring.h2.console.path=/h2-console
spring.h2.console.settings.trace=false
spring.h2.console.settings.web-allow-others=false

在上面的代码中,我们设置了 H2 的控制台访问控制台的 URL 为: /h2-console,这个链接是针对你当前项目运行的服务器地址和端口的相对地址。

例如你当前服务器运行的 URL 为  http://localhost:9001 那么 H2 控制台访问的地址为  http://localhost:9001/h2-console

同时我们设置了 spring.h2.console.settings.trace 参数为 false,这样我们能够避免在系统控制台中输出 trace 级别的日志信息。

通过设置 spring.h2.console.settings.web-allow-others=false 参数,我们能够禁止远程 Web 访问 H2 数据库的信息。

结论

H2 是完全与 Spring Boot 兼容的,通过这篇文章,你能够了解如何使用 H2 控制台来管理整治运行的数据库。

有关完整的代码情况参考我们提交到 GitHub 中的代码示例:https://github.com/cwiki-us-demo/java-tutorials/tree/master/persistence-modules/spring-boot-persistence-h2-console 中的内容。

目录
相关文章
|
2月前
|
Java 数据库
SpringBoot定时将数据库表生成Excel表格
SpringBoot定时将数据库表生成Excel表格
20 0
|
2月前
|
druid Java 数据库
druid+springboot加解密Druid链接池配置加密密码链接数据库
druid+springboot加解密Druid链接池配置加密密码链接数据库
65 0
|
5天前
|
XML Java 数据库连接
Springboot整合mybatisPlus操作数据库
MyBatis-Plus是MyBatis的增强工具,简化开发、提高效率。它提供官网文档,便于集成到SpringBoot项目中。集成步骤包括添加mybatis-plus-boot-starter和数据库驱动依赖,配置数据源,扫描Mapper类包。Mapper接口继承BaseMapper即可使用基本的CRUD操作。示例代码展示了Service层的增删改查实现。MyBatisPlus还支持逻辑删除、自动填充等功能,同时可与Mybatis XML配合使用,通过调整配置指定XML映射文件位置。
|
5天前
|
Java 关系型数据库 MySQL
springboot业务开发--springboot一键生成数据库文档
Screw是一个数据库文档生成工具,能自动化根据数据库表结构生成文档,减轻开发人员工作负担,支持MySQL、MariaDB、TiDB等多种数据库和HTML、Word、Markdown等格式。它依赖HikariCP数据库连接池和Freemarker模板引擎。通过在Spring Boot项目中添加相关依赖并配置,可以用代码或Maven插件方式生成文档。示例代码展示了如何在JUnit测试中使用Screw生成HTML文档。
|
9天前
|
存储 Java 数据库
SpringBoot使用jasypt实现数据库配置加密
这样,你就成功地使用Jasypt实现了Spring Boot中的数据库配置加密,确保敏感信息在配置文件中以加密形式存储,并在应用启动时自动解密。
35 2
|
26天前
|
存储 关系型数据库 MySQL
【mybatis-plus】Springboot+AOP+自定义注解实现多数据源操作(数据源信息存在数据库)
【mybatis-plus】Springboot+AOP+自定义注解实现多数据源操作(数据源信息存在数据库)
|
27天前
|
Java 测试技术 数据库
SpringBoot启动时设置不加载数据库
SpringBoot启动时设置不加载数据库
10 0
|
1月前
|
Java 关系型数据库 MySQL
基于SpringBoot后端实现连接MySQL数据库并存贮数据
基于SpringBoot后端实现连接MySQL数据库并存贮数据
|
1月前
|
Java 数据库
SpringBoot数据库连接池常用配置
SpringBoot数据库连接池常用配置
17 0
|
1月前
|
Java 数据库 数据安全/隐私保护
SpringBoot项目使用jasypt加解密的方法加密数据库密码
SpringBoot项目使用jasypt加解密的方法加密数据库密码
9 0