Spring-Bootspring boot项目实战

spring boot 2.0 h2配置

2018-11-07  本文已影响11人  思与学

h2是一种内存数据库,可以方便的整合进spring-boot项目内。

1. application.properties

#配置数据库连接地址
spring.datasource.primary.jdbc-url=jdbc:h2:file:./h2/code-generator;AUTO_SERVER=TRUE;DB_CLOSE_ON_EXIT=FALSE
#配置数据库驱动
spring.datasource.primary.driver-class-name=org.h2.Driver
#配置数据库用户名
spring.datasource.primary.username=root
#配置数据库密码
spring.datasource.primary.password=root
#配置能远程访问
spring.h2.console.settings.web-allow-others=true
#配置访问地址
spring.h2.console.path=/h2-console
#配置项目启动 h2就启动
spring.h2.console.enabled=true

jbdc-url的配置:

2. h2控制台

访问http://localhost:8089/h2-console,页面如下图

image.png
其中JDBC URL输入框内输入配置文件内jdbc-url的前半部分,User Name和Password是我们配置文件内配置的username和password。进入后就可以看到我们的数据库code-generator和它下面的表了。

需要注意的是如果按照官方示例:jpa-multiple-datasources内的方式配置内存数据库,如下

return new EmbeddedDatabaseBuilder().//
                setType(EmbeddedDatabaseType.H2).//
                setName("customers").//
                build();

等价于

spring.datasource.primary.jdbc-url=jdbc:h2:mem:customers;
spring.datasource.primary.username=sa
spring.datasource.primary.password=
  1. jdbc:h2:file:E:/data/H2 表示将初始化的数据和H2 Console控制台执行的数据保存到E盘下data/H2文件夹中,即使应用重启,数据不会丢失。
  2. jdbc:h2:/testdatabase这里就需要说明一下””这个符号在window操作系统下代表什么意思了,在Window操作系统下,”~”这个符号代表的就是当前登录到操作系统的用户对应的用户目录,所以testdatabase数据库对应的文件存放在登录到操作系统的用户对应的用户目录当中,比如我当前是使用Administrator用户登录操作系统的,所以在”C:\Documents and Settings\Administrator.h2”目录中就可以找到test数据库对应的数据库文件了
    持久化本地的问题:由于本地已经存在表,而应用每次启动都会创建表,导致下次启动时会启动报错。除非手动注掉application.properties中新建表的配置,或则删除本地对应目录的文件。
    3.jdbc:h2:mem:soa_service_api、jdbc:h2:mem:~/.h2/url类似与这种配置的,表示将初始化和h2 console控制台上操作的数据保存在内存(mem-memory)
    保存到内存的问题:由于每次重启应用内存释放掉后,对应的数据也会消失,当然初始化的表+初始化数据就都没了。然后重启会从data.sql中重新初始化数据,启动正常。但是你通过h2
上一篇下一篇

猜你喜欢

热点阅读