gpt4 book ai didi

grails - 使用IntelliJ数据库客户端连接H2数据库

转载 作者:行者123 更新时间:2023-12-03 06:02:20 29 4
gpt4 key购买 nike

我的 Grails 应用程序在开发模式下使用 h2 数据库(Grails 应用程序的默认行为)。 DataSource.groovy 中的数据库连接设置为

dataSource {
pooled = true
jmxExport = true
driverClassName = "org.h2.Driver"
username = "sa"
password = ""
dbCreate = "create-drop" // one of 'create', 'create-drop', 'update', 'validate', ''
url = "jdbc:h2:mem:devDb;MVCC=TRUE;LOCK_TIMEOUT=10000;DB_CLOSE_ON_EXIT=FALSE"
}

我正在尝试使用 IntelliJ IDEA 的数据库客户端工具为此数据库设置连接。我开始像这样创建连接

enter image description here

然后在下面的对话框中,我输入 JDBC URL

enter image description here

并在“架构和表”选项卡上选择所有可用的数据库。

enter image description here

“测试连接”按钮表示成功,但是从红圈中可以看到,没有找到任何表。看来我已经正确设置了与 h2 服务器的连接,但没有正确设置架构本身。

顺便说一句,我尝试在应用程序运行后设置此连接,因此我确信架构/表确实存在。

最佳答案

您的配置适用于 h2:mem 数据库。内存数据库在连接到它们时没有表,并且当所有连接关闭时,所有表都会丢失。此外,(命名的)内存数据库对于打开它的 JVM 进程来说是唯一的。来自 H2 documentation :

Sometimes multiple connections to the same in-memory database are required. In this case, the database URL must include a name. Example: jdbc:h2:mem:db1. Accessing the same database using this URL only works within the same virtual machine and class loader environment. (Emphasis added)

这意味着 IDEA 将在其 JVM(和类加载器)空间中创建一个唯一的 devDb,并且您的应用程序将在其 JVM(和类加载器)空间中创建一个唯一的 devDb。您无法从外部 JVM 进程连接到内存数据库。

如果您想同时将应用程序和 IntelliJ IDEA(或任何其他数据库工具)连接到 H2 数据库,您将需要

  1. 在应用程序中使用嵌入式数据库(写入文件)并使用混合模式以允许 IntelliJ IDEA(和/或其他数据库工具)连接到它
  2. 使用服务器模式数据库

参见http://www.h2database.com/html/features.html#connection_modes了解更多信息。

关于grails - 使用IntelliJ数据库客户端连接H2数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28940912/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com