【问题标题】:understanding connection to h2 database了解与 h2 数据库的连接
【发布时间】:2011-04-16 04:44:57
【问题描述】:

请原谅我没有在这个问题上做功课并直接提问,但我需要了解连接字符串“jdbc:h2:h2db/database”的含义才能获得h2数据库连接。

我想知道,如果我在托管在 tomcat 服务器上的 Web 应用程序(在 Spring 和 hibernate 框架上编码)中使用上述字符串,那么我的数据库位于哪里..

如果有人能简单地解释一下,那将是一个很大的帮助。 我是一个新手,必须了解更多的东西,所以我发布这个问题而不用谷歌搜索 H2 数据库

请帮忙!!!!

【问题讨论】:

    标签: java database hibernate spring h2


    【解决方案1】:

    连接字符串或连接 url 就是这样 - 通过驱动程序指定到数据库的连接详细信息。本例中的驱动程序是 JDBC 驱动程序,这是 Java 与数据库通信的方式。数据库提供者实现此接口并提供驱动程序。之前的部分:在您的情况下是协议,即 jdbc。对于 JDBC-ODBC 桥,其他协议可以是 jdbc:odbc。在协议之后是 db 供应商说明符,在本例中是 h2,最后是数据库名称。连接字符串的结构没有具体的标准,但 procotol:database_type:database_name:port 很常见。

    Here 是一堆连接字符串供你查看。

    从您的connection string 看来,您在嵌入式模式下使用 h2,因此 db 与您的 tomcat 位于同一个盒子上。

    【讨论】:

    • 非常感谢 manish ...我会阅读有关内存数据库的更多信息,但请您告诉我,这个数据库是在程序范围之外持久存在还是易失性?我的意思是它仅适用于特定会话
    • 我感觉它在内存中(尽管连接字符串应该指定 :mem),所以每次反弹 Tomcat 时数据库都会被清除。这个数据库中存储了什么样的数据?如果它存储会话级别的数据,那么我的假设很可能是正确的。
    • yup 用于会话相关数据,主要用于从网络接收的 JSON 消息并将其用于处理,如果在处理过程中发生一些错误,则可以再次从数据库中检索消息
    • 啊,就像一个缓存。所以是的,它在嵌入式内存配置中运行。
    • 它是嵌入的,但持久的,请参阅 DB URLs in the cheat sheet。它驻留在当前工作目录中,这通常不是一个好主意。
    【解决方案2】:

    此字符串表示“以嵌入式模式连接到 h2,并将其指向位于 [running app path]/h2db/database 的 db”。如果不存在,请为我创建”。您也可以使用绝对路径(以“/”开头),例如 jdbc:h2:/dbs/h2/database。 在工作目录中搜索 h2db 文件夹。

    【讨论】:

    • 操作...为时已晚。请无视。
    猜你喜欢
    • 2011-10-21
    • 2012-09-06
    • 1970-01-01
    • 1970-01-01
    • 2020-08-12
    • 2018-12-21
    • 1970-01-01
    • 1970-01-01
    • 2018-08-20
    相关资源
    最近更新 更多