SpringBoot默认的H2数据库如何查看?

2017年01月11日 16:31:44

如果大家用SpringBoot的话,如果在pom.xml文件里面加入了H2 数据库的引用的话,其将会把数据持久化到H2 内存数据库中。

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

那么,我们如何查看其被持久化到H2数据库中的数据,且不需要安装第三发的软件?

首先,我们需要知道H2数据的连接的URL,默认情况下,SpringBoot的Hibernate打印的是Info级别的信息,其是查看不到H2数据连接相关的信息。所以首先需要把SpringBoot的Hibernate的debug信息打开。方式很简单,创建一个application.properties文件,然后在其文件里面添加下面一行。

logging.level.org.hibernate=DEBUG



添加之后,就可以启动SpringBoot,(注,笔者的开发环境是STS),这样就能看到打印出的log信息了。

2017-01-11 16:15:19.868 DEBUG 8340 --- [           main] o.hibernate.jpa.internal.util.LogHelper  : PersistenceUnitInfo [
	name: default
	persistence provider classname: null
	classloader: sun.misc.Launcher$AppClassLoader@764c12b6
	excludeUnlistedClasses: true
	JTA datasource: null
	Non JTA datasource: org.apache.tomcat.jdbc.pool.DataSource@2e554a3b{ConnectionPool[defaultAutoCommit=null; defaultReadOnly=null; defaultTransactionIsolation=-1; defaultCatalog=null; driverClassName=org.h2.Driver; maxActive=100; maxIdle=100; minIdle=10; initialSize=10; maxWait=30000; testOnBorrow=true; testOnReturn=false; timeBetweenEvictionRunsMillis=5000; numTestsPerEvictionRun=0; minEvictableIdleTimeMillis=60000; testWhileIdle=false; testOnConnect=false; password=********; url=jdbc:h2:mem:testdb;DB_CLOSE_DELAY=-1;DB_CLOSE_ON_EXIT=FALSE; username=sa; validationQuery=SELECT 1; validationQueryTimeout=-1; validatorClassName=null; validationInterval=3000; accessToUnderlyingConnectionAllowed=true; removeAbandoned=false; removeAbandonedTimeout=60; logAbandoned=false; connectionProperties=null; initSQL=null; jdbcInterceptors=null; jmxEnabled=true; fairQueue=true; useEquals=true; abandonWhenPercentageFull=0; maxAge=0; useLock=false; dataSource=null; dataSourceJNDI=null; suspectTimeout=0; alternateUsernameAllowed=false; commitOnReturn=false; rollbackOnReturn=false; useDisposableConnectionFacade=true; logValidationErrors=false; propagateInterruptState=false; ignoreExceptionOnPreLoad=false; }
	Transaction type: RESOURCE_LOCAL
	PU root URL: file:/D:/4.Trainning/Springboot/gs-accessing-data-jpa-master/gs-accessing-data-jpa-master/complete/target/classes/
	Shared Cache Mode: UNSPECIFIED
	Validation Mode: AUTO
	Jar files URLs []
	Managed classes names [
		hello.Customer]
	Mapping files names []
	Properties []

从上面的debug的日志信息,我可以知道,其H2的连接的URL为jdbc:h2:mem:testdb,默认的用户名为sa,密码为空。

然后,打开浏览器,输入http://localhost:8080/h2-console/


输入相应的信息,如上。然进入,就能看到刚刚的SpringBoot创建的信息的了。



如果想自己制定H2的web Console,可以用下面的配置文件。

import java.sql.SQLException;

import org.h2.tools.Server;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.boot.autoconfigure.condition.ConditionalOnExpression;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.Profile;

@Configuration
//@Profile("dev") // Only activate this in the "dev" profile
public class H2ServerConfiguration {
	
    // TCP port for remote connections, default 9092
    @Value("${h2.tcp.port:9092}")
    private String h2TcpPort;

    // Web port, default 8082
    @Value("${h2.web.port:8082}")
    private String h2WebPort;

    @Bean
    @ConditionalOnExpression("${h2.tcp.enabled:false}")
    public Server h2TcpServer() throws SQLException {
        return Server.createTcpServer("-tcp", "-tcpAllowOthers", "-tcpPort", h2TcpPort).start();
    }


    @Bean
    @ConditionalOnExpression("${h2.web.enabled:true}")
    public Server h2WebServer() throws SQLException {
        return Server.createWebServer("-web", "-webAllowOthers", "-webPort", h2WebPort).start();
    }
    
}


然后输入http://localhost:8082/ 就能登录到H2的数据库管理平台了。



具体的项目的代码地址,请到Github上下载:https://github.com/spring-guides/gs-accessing-data-jpa





spring-boot集成H2内存数据库

spring-boot集成H2内存数据库
  • zhangjq520
  • zhangjq520
  • 2016年12月29日 17:52
  • 3897

springboot整合H2内存数据库,实现单元测试与数据库无关性

一、新建spring boot工程 新建工程的时候,需要加入JPA,H2依赖 二、工程结构 pom文件依赖如下: ...
  • liuchuanhong1
  • liuchuanhong1
  • 2017年01月20日 12:19
  • 4957

spring boot集成h2指南

依赖 添加依赖文件。如果你使用的是gradle,则可以在build.gradle文件种加入下面代码...
  • zmken497300
  • zmken497300
  • 2017年03月28日 13:30
  • 1551

spring boot+thymeleaf+bootstrap 简单实现后台管理系统界面

spring boot+thymeleaf+bootstrap 简单实现后台管理系统界面
  • qq_14904081
  • qq_14904081
  • 2017年07月12日 14:26
  • 5020

Spring Boot+Maven 工程配置H2内存数据库

1.新建Maven工程,引入依赖pom配置: org.springframework.boot spring-boot-starter-parent 1.3.1.RELEAS...
  • u010429286
  • u010429286
  • 2017年04月11日 14:16
  • 1367

spring boot 实现h2数据库本地化

spring boot 实现h2数据库本地化.
  • sai739295732
  • sai739295732
  • 2015年10月26日 17:27
  • 5685

springboot-内存数据库h2

springboot和内存数据库结合,springboot都帮我们弄好,导入依赖就行了,很爽。 org.springframework.boot spring-boot...
  • hong0220
  • hong0220
  • 2016年06月25日 15:29
  • 3104

Spring Boot整合H2测试DAO

在写DAO层的单元测试时,我们往往会遇到一个问题,测试用例所依赖的数据库数据被修改或删除了,或者在一个新的环境下所依赖的数据库不存在,导致单元测试无法通过,进而构建失败。 在这种情况下,使用H2内存...
  • mn960mn
  • mn960mn
  • 2017年01月21日 10:29
  • 5653

spring boot 使用h2数据库配置(内存模式)

spring boot 使用h2数据库配置(内存模式)spring.datasource.username=sa spring.datasource.password= spring.datasour...
  • hero710692586
  • hero710692586
  • 2015年10月28日 23:10
  • 3199

springboot--h2 嵌入式数据库的使用

springboot–h2 嵌入式数据库的使用springbooth2 嵌入式数据库的使用 添加依赖 配置 指定路径 内存模式 进入控制台添加依赖 com.h2database h2 runtime ...
  • qq_30001571
  • qq_30001571
  • 2017年12月13日 20:43
  • 178
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:SpringBoot默认的H2数据库如何查看?
举报原因:
原因补充:

(最多只允许输入30个字)