开发者社区> honeymoose> 正文
阿里云
为了无法计算的价值
打开APP
阿里云APP内打开

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 中的内容。

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
springboot 全局异常处理
springboot 全局异常处理
40 0
SpringBoot全局异常处理
在开发软件系统过程中,异常信息是常见的,如何处理系统内部异常,快速定位BUG,是非常考验一位软件开发人员的功底。在软件系统开发过程中,统一自定义异常信息,统一对异常进行捕获处理,这样做能提高软件开发效率,并且使代码看起来更优雅。
78 0
数据库使用率对比【CSDN指数】
数据库使用率对比【CSDN指数】
52 0
Hello Spring Boot应用程序
Hello Spring Boot应用程序
41 0
SpringBoot实战(四)之使用JDBC和Spring访问数据库
这里演示的是h2databse示例,所以简单的介绍普及下h2database相关知识 H2数据库是一个开源的关系型数据库。 H2是一个嵌入式数据库引擎,采用java语言编写,不受平台的限制,同时H2提供了一个十分方便的web控制台用于操作和管理数据库内容。
2350 0
Springboot使用JPA操作数据库
第七章 使用JPA操作数据库 本章主要介绍如何在Spring Boot的Web应用中使用Mysq数据库,也充分展示Spring Boot的优势(尽可能少的代码和配置).
1060 0
Derby数据库
JDK6笔记(1)----Derby数据库 1)JDK6包含了一个轻量级的数据库,称为Derby,它属于Apache数据库项目的产品。Derby是基于事务型的关系数据库,在磁盘上占用空间极少。
930 0
Derby数据库
版权声明:本文为博主chszs的原创文章,未经博主允许不得转载。 https://blog.csdn.net/chszs/article/details/1523954 Derby数据库  JDK6笔记(1)----Derby数据库 1)JDK6包含了一个轻量级的数据库,称为Derby,它属于Apache数据库项目的产品。
848 0
+关注
honeymoose
CWIKI.US 站长。 从事开发多年,在彷徨和迷失的边缘徘徊。
897
文章
0
问答
文章排行榜
最热
最新
相关电子书
更多
低代码开发师(初级)实战教程
立即下载
阿里巴巴DevOps 最佳实践手册
立即下载
冬季实战营第三期:MySQL数据库进阶实战
立即下载