Java 如何浏览数据库
我在运行时模式的spring应用程序中使用h2Java 如何浏览数据库,java,spring,h2,Java,Spring,H2,我在运行时模式的spring应用程序中使用h2 <dependency> <groupId>com.h2database</groupId> <artifactId>h2</artifactId> <scope>runtime</scope> </dependency> com.h2数据库 并通过sa和空白密码浏览(不理解为什么密码为空白,也不知道如何更改密码) 我的桌子在
<dependency>
<groupId>com.h2database</groupId>
<artifactId>h2</artifactId>
<scope>runtime</scope>
</dependency>
com.h2数据库
并通过sa和空白密码浏览(不理解为什么密码为空白,也不知道如何更改密码)
我的桌子在哪里?我是否连接到正确的实例
更新
我看到当我停止我的Spring应用程序时,我仍然能够通过H2控制台浏览到H2,我希望它会离线。。。我不明白如果您使用的是内存中的h2数据库,那么就使用下面的JDBC url
jdbc:h2:mem:testdb
检查post提供的配置我发现我只能在使用文件数据库时执行此操作
url: jdbc:h2:~/nexin;DB_CLOSE_DELAY=-1;MODE=MySQL;MV_STORE=FALSE;MVCC=FALSE
我使用的是dbvizizer而不是Intelij。作为H2
:
支持以下连接模式:
- 嵌入式模式(使用JDBC的本地连接)
- 服务器模式(通过TCP/IP使用JDBC或ODBC的远程连接)
- 混合模式(同时进行本地和远程连接)
为了能够简单地从两个独立的应用程序连接到数据库,连接模式应为服务器模式
或混合模式
(有关详细信息,请阅读h2文档)。您使用的模式由用于连接到它的连接url决定,在您的情况下,连接url是jdbc:h2:~/test
,这意味着您正在以嵌入式模式启动h2。这意味着数据库服务器将从您的应用程序中启动,并且只能由单个JVM访问
TLDR
您只需使用自动混合模式
功能将模式更改为混合模式
。为此,只需将您的jdbc url(在两个应用程序中—您的应用程序和客户端应用程序中)更改为:jdbc:h2:~/databasefile;AUTO_SERVER=TRUE
此~/databasefile
是存储实际数据的位置-同样,访问两个连接/应用程序的相同文件很重要
如果使用默认配置的Spring Boot,要更改jdbc url,只需添加以下属性:
spring.datasource.url=jdbc:h2:~/databasefile;AUTO_SERVER=TRUE
它不工作,或者我不明白什么是testdb?这个名称来自哪里?testdb是Spring.ok指定的默认数据库名称。我仍然看不到我的表,我看到的与我所附的图像相同。您看到的是H2浏览器中的内存数据库,而不是您自己应用程序中的嵌入式数据库。不要将H2控制台作为单独的应用程序运行,而是将其嵌入到您自己的应用程序中。请参见:。