SpringBoot集成H2

像个人博客这样的小规模应用可能不适合使用MySQL这样重量级的数据库,它的资源占用比较高,而且我们也不需要太多的企业级特性,这种场景下H2数据库就非常适合。这篇笔记我们学习如何在SpringBoot中集成嵌入式的H2数据库。

起步依赖配置

pom.xml中,我们需要加入H2数据库依赖。

<dependency>
  <groupId>com.h2database</groupId>
  <artifactId>h2</artifactId>
  <scope>runtime</scope>
</dependency>

如果我们使用Spring Initializr可以直接在创建项目时勾选H2。当然,除了数据库我们还需要SpringDataJPA或MyBatis等模块进行数据访问,这里就不多介绍了。

SpringBoot项目配置

application.properties中我们需要配置一下数据库文件的地址,我们这里使用SpringDataJPA作为ORM框架,以嵌入式模式访问H2数据库。

application.properties

spring.datasource.url=jdbc:h2:~/h2/test
spring.jpa.hibernate.ddl-auto=none

要注意的是spring.jpa.hibernate.ddl-auto=none这个配置,SpringBoot默认情况下,使用嵌入式数据库时默认值为create-drop,这会在数据库重启时清空数据,而使用MySQL等数据库服务器默认值为none,不会清空数据。我们这里不希望清空数据,因此改为none

配置H2控制台

由于我们配置的是嵌入式模式,因此一个应用程序访问数据库文件时就会将其锁定,我们SpringBoot程序运行中是无法通过其它客户端连接H2数据库文件的,但我们可以在SpringBoot项目内部配置启动H2控制台。

application.properties

spring.h2.console.path=/h2-console
spring.h2.console.enabled=true

这样我们调试时就可以访问H2控制台了,非常方便。

作者:Gacfox
版权声明:本网站为非盈利性质,文章如非特殊说明均为原创,版权遵循知识共享协议CC BY-NC-ND 4.0进行授权,转载必须署名,禁止用于商业目的或演绎修改后转载。