我想在Web浏览器中查看Spring启动的H2数据库的内容,这要归功于以下配置:
<jdbc:embedded-database id="dataSource" type="H2" />
<jdbc:initialize-database data-source="dataSource">
<jdbc:script location="classpath:db/populateDB.sql"/>
</jdbc:initialize-database>
我在日志中搜索JDBC URL:
DEBUG o.s.j.d.SimpleDriverDataSource - Creating new JDBC Driver Connection to [jdbc:h2:mem:dataSource;DB_CLOSE_DELAY=-1]
这样我就可以按照如下方式填写连接表单:
但不幸的是,数据库仍然是空的,而它不应该由于populateDB.sql脚本。
你知道吗?
谢谢!
7条答案
按热度按时间t8e9dugd1#
与View content of H2 or HSQLDB in-memory database的问题几乎相同。
只需将以下内容添加到您的配置中。
这将在与嵌入式数据库相同的JVM中启动H2 Web控制台和TCP服务器,以便您可以使用Web浏览器访问端口8082(输入jdbc:h2:mem:dataSource作为URL),或者使用外部SQL客户端(如SQuirreLSQL)访问端口9092并查看相同的数据。
ubbxdtey2#
使用spring Boot ,您可以通过www.example.com文件中的几个配置来实现这application.properties一点。
然后您可以在http://localhost:8080/console/中访问h2 web控制台。默认登录配置应该可以正常工作,除非您更改它们。
请参见spring Boot 文档。
k4emjkb13#
数据库URL
jdbc:h2:mem:dataSource
表示您正在使用内存数据库。现在,如果启动第二个Java进程并连接到该数据库,则最终将有两个内存中的数据库(每个进程一个)。如果要连接到现有数据库,有多个选项:
6jjcrrmo4#
使用Sping Boot 时,您可以注册H2 Console Servlet,如下所示:
如果您希望控制台可以远程使用,那么重要的一行是
addInitParameter
,它将"webAllowOthers"
设置为"true"
。kx7yvsdv5#
当您将嵌入式deb与xml jdbc配置一起使用时,数据库的默认名称是“testdb”
尝试在您的url连接中使用:
cpjpxq1n6#
对于那些想要Java Config设置的人来说,在实现ServletContextInitializer和链接控制台服务器时,初始化TCP服务器也是相当容易的。
6vl6ewon7#
我也面临着类似的问题。但修复的效果非常小。请参阅页面:https://springframework.guru/using-the-h2-database-console-in-spring-boot-with-spring-security/了解更多详情。
在我的例子中,我添加了H2依赖的范围作为“运行时”。我删除了范围声明,它解决了我的问题。现在,我可以在H2控制台中看到表格。
我的pom中以前的依赖项是:
新的依赖关系解决了我的问题: