在Spring Boot使用H2内存数据库

在之前的文章中我们有提到在Spring Boot中使用H2内存数据库方便开发和测试。本文我们将会提供一些更加具体有用的信息来方便我们使用H2数据库。

添加依赖配置

要想使用H2,我们需要添加如下配置:

<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-jpa</artifactId>
</dependency>
<dependency>
<groupId>com.h2database</groupId>
<artifactId>h2</artifactId>
<scope>runtime</scope>
</dependency>

数据库配置

有了上面的依赖,默认情况下Spring Boot会为我们自动创建内存H2数据库,方便我们使用,当然我们也可以使用自己的配置,我们将配置写入application.properties:

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

默认情况下内存数据库会在程序结束之后被销毁,如果我们想永久保存内存数据库需要添加如下配置:

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

这里配置的是数据库的文件存储地址。

添加初始数据

我们可以在resources文件中添加data.sql 文件,用来在程序启动时,创建所需的数据库:

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管理程序,我们看下怎么使用。首先需要添加如下权限:

spring.h2.console.enabled=true

启动程序, 我们访问 http://localhost:8080/h2-console ,得到如下界面:

记得填入你在配置文件中配置的地址和密码。

登录之后,我们可以看到如下的管理界面:

我们还可以添加如下配置来管理这个GUI:

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

其中path指定了路径,trace指定是否开启trace output,web-allow-others指定是否允许远程登录。

本文的例子可以参考https://github.com/ddean2009/learn-springboot2/tree/master/springboot-h2

更多内容请参考http://www.flydean.com/spring-boot-h2/

最新文章

  1. Backbone.js 中的Model被Destroy后,不能触发success的一个原因
  2. VMware安装ubuntu虚拟机
  3. hiho_1079_离散化
  4. js stringObject的indexOf方法
  5. Jquery插件之信息弹出框showInfoDialog(成功、错误、警告、通知)
  6. 重叠I/O之事件通知
  7. 捕鱼达人代码例子下载地址 Win版
  8. Implementing a builder: Combine
  9. 初学Python(十)——列表生成式
  10. [LeetCode] Find Bottom Left Tree Value 寻找最左下树结点的值
  11. mybatis 的批量更新操作sql
  12. 微商城分享 包括app分享 微信分享
  13. htmlElement.style 是只读属性
  14. 塔式Server 服务器ESXI6.5安装
  15. npp 文本编辑器 开源
  16. poj 1837 01背包
  17. JS生成指定范围内的随机数(支持随机小数)
  18. PHP数据库抽象层--PDO(PHP Data Object) [一]
  19. U盘安装咱中国人自己的操作系统UbuntuKylin14.04LST(超具体原创图文教程)
  20. 20135337朱荟潼Java实验报告二

热门文章

  1. JavaScript new 的时候到底发生了什么?
  2. DALI 48V驱动
  3. Jenkins中管道案例脚本(生命式语法)
  4. Jmeter 压力测试笔记(1)--服务器迁移失败
  5. 微信小程序分享至朋友圈的方法
  6. Flask 入门(七)
  7. Python常见数据结构-Dictionary字典
  8. 七、环回接口ip地址(逻辑接口)
  9. VirtualBox的四种网络连接方式【转】
  10. java 方法 在jvm中的调用