热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

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

如何解决《使用IntelliJ数据库客户端连接到H2数据库》经验,为你挑选了2个好方法。

我的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的数据库客户端工具为此数据库建立连接.我开始创建这样的连接

在此输入图像描述

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

在此输入图像描述

并在"Schemas&Tables"选项卡上选择所有可用的数据库.

在此输入图像描述

"测试连接"按钮表示成功,但从红色圆圈可以看到,没有找到表格.好像我已正确设置到h2服务器的连接,但不是架构本身.

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



1> Javaru..:

您的配置适用于h2:mem数据库.内存数据库在连接它们时没有表,当所有连接都关闭时,任何和所有表都会丢失.此外,内存数据库中的(命名)对于打开它的JVM进程唯一的.从H2文档:

有时需要与同一内存数据库的多个连接.在这种情况下,数据库URL必须包含名称.示例:jdbc:h2:mem:db1.使用此URL访问同一数据库仅适用于同一虚拟机和类装入器环境.(重点补充)

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

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

    在您的应用程序中使用嵌入式数据库(写入文件)并使用它Mixed Mode来允许IntelliJ IDEA(和/或其他数据库工具)连接到它

    使用服务器模式数据库

有关更多信息,请参见http://www.h2database.com/html/features.html#connection_modes.


对于那些想知道如何启用混合模式的人:jdbc:h2:〜/ test; AUTO_SERVER = TRUE(在app config和idea db manager设置中都有)

2> Jason White..:

本文非常好地介绍了如何设置IntelliJ数据库客户端以连接到H2内存数据库(如果您正好使用Spring Boot):https://techdev.io/en/developer-blog/querying-所述包埋-H2-数据库对的一弹簧引导的应用程序

基本上,您使用tcp服务器包装内存数据库,然后您有一个访问点通过远程访问连接到SQL客户端.


https://techdev.io/en/developer-blog/querying-the-embedded-h2-database-of-a-spring-boot-application
推荐阅读
author-avatar
捕鱼达人2502933245
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有