Dun*_*ken 19 java hibernate jdbc h2
我从http://www.h2database.com/html/download.html下载了H2控制台
,我已将jdbc.properties文件中的URL配置
为jdbc:h2:c:/data/Messaging.
我在文件中使用相同的URL连接到数据库,但我看不到表; 我只能看到信息模式,当我尝试使用select * from tables它时,我也看不到这些表格.
有谁知道什么可能是错的?
Mat*_*ttC 21
一个棘手的问题是,如果您尝试连接到不存在的JDBC URL,H2控制台不会给您一个错误.它将在该URL上创建一个新数据库!要连接到内存DB,请使用此JDBC URL(http:// localhost:8080/h2-console是默认控制台):
jdbc:h2:mem:testdb
Run Code Online (Sandbox Code Playgroud)
如果您要输入类似jdbc:h2:〜/ test的内容,那么将在您的主目录下创建一个test.mv文件.但是您的应用程序仍将使用内存数据库.
如果你的pom中有h2依赖项,那么控制台是可用的,还有spring Developer tools依赖项.如果您没有工具依赖项,那么您也可以通过拥有h2依赖项并将以下内容添加到application.properties文件中来查看它:
spring.h2.console.enabled=true #not needed if you have spring-boot-devtools dependency
Run Code Online (Sandbox Code Playgroud)
如果您希望将db作为文件而不是内存,请将以下内容添加到applications.properties:
spring.datasource.url=jdbc:h2:~/test_db #You will see the file in your home directory.
Run Code Online (Sandbox Code Playgroud)
H2不适用于持久数据,但如果您想持久进行测试,请添加:
spring.jpa.hibernate.ddl-auto = update
Run Code Online (Sandbox Code Playgroud)
然后启动应用程序,并在控制台上使用此JDBC URL:
jdbc:h2:~/test_db
Run Code Online (Sandbox Code Playgroud)
如果您想知道,我在application.properties中只有1个条目(对于数据库文件),这里是我的依赖项:
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-devtools</artifactId>
<optional>true</optional>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-rest</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-jpa</artifactId>
</dependency>
<dependency>
<groupId>com.h2database</groupId>
<artifactId>h2</artifactId>
</dependency>
Run Code Online (Sandbox Code Playgroud)
Dan*_*owy 10
根据你的问题,看起来你不会成为这个特殊陷阱的受害者,但是这个帖子最终帮我解决了这个问题,所以我在这里为后代录制解决方案,因为它可以帮助其他人解决同样的问题.
我还发现,当我尝试使用H2控制台打开我的数据库时,我得到了一个看似空白的H2数据库(基本上只是一个INFORMATION_SCHEMA表).仔细检查我得到了DB的名称是否正确(mydb.mv.db),我发现H2控制台已经创建了第二个数据库文件mydb.mv.db.mv.db.奇.
事实证明,H2控制台希望您省略.mv.db文件名中的后缀.因为我没有,它一直在寻找mydb.mv.db.mv.db.更改JDBC字符串以jdbc:h2:mydb解决问题,然后我可以从H2控制台打开文件.
这是使用h2模块启用内存启用数据库的方法.您需要确保以下事项
spring.h2.console.enabled=truelocalhost:8080/h2-consoleJDBC URL:- > jdbc:h2:mem:testdb
5.Hit连接按钮中输入以下更改萨拉姆
| 归档时间: |
|
| 查看次数: |
20163 次 |
| 最近记录: |