当前位置: 首页 > 知识库问答 >
问题:

H2数据库控制台:如何连接到嵌入式H2 JPA数据库?

米楚青
2023-03-14

我对一个应用程序的JPA层进行了几个单元测试。这个JPA层由JPA实体和一个提供持久化实体所需的基本API的服务组成。单元TET直接使用javax.Persistence类来处理PersistenceManager。然后测试持久性API,我可以在日志中看到创建表和序列等的SQL语句。

persistence.xml文件的相关部分如下所示:

  <persistence-unit name="..." transaction-type="RESOURCE_LOCAL">
  <provider>org.hibernate.jpa.HibernatePersistenceProvider</provider>
  ...
  <properties>
    <property name="javax.persistence.jdbc.url" value="jdbc:h2:mem:test"/>
    <property name="javax.persistence.jdbc.driver" value="org.h2.Driver"/>
    <property name="hibernate.dialect" value="org.hibernate.dialect.H2Dialect"/>
    <property name="hibernate.hbm2ddl.auto" value="create-drop"/>
    <property name="hibernate.format_sql" value="false"/>
    <property name="hibernate.show_sql" value="true"/>
  </properties>
</persistence-unit>
...

我已经下载了Windows安装程序H2 1.4.200,并将其安装在Windows10上。现在,我希望使用H2控制台连接到数据库,并检查由Hibernate自动创建的表、序列等。

共有1个答案

亢嘉茂
2023-03-14

最后,我用Oracle替换了H2。

 类似资料:
  • 在H2文档中,它表示只有web服务器支持浏览器连接。这是否意味着我们只能在WebServer模式下通过控制台访问H2数据库,而不能通过TcpServer?但当我做以下测试时,结果完全不符合预期。 如果启动TcpServer,我可以通过以下url访问DB:jdbc:h2:tcp://localhost:9092/mem:test在控制台中。 但是当我启动WebServer时,我尝试使用jdbc: h

  • 我一直在努力使用数据库URL概述部分提到的以下连接字符串从Spring Boot应用程序连接H2数据库: 我还尝试了许多不同的tcp(服务器模式)连接组合,但仍然出现错误,例如“连接中断:”java。网运行Spring Boot app时,SocketTimeoutException:连接超时:localhost:9092”。 那么,如何解决这个问题并通过服务器模式连接到H2数据库呢?

  • 我已经创建了一个Spring启动应用程序,我没有使用内存中的H2数据库,而是安装了用于H2数据库的exe并在外部使用它。现在我想将我的Spring启动应用程序与这个外部H2数据库连接起来。我已经添加了依赖项,我已经在application.properties文件中添加了所有必需的属性(你可以看到下面)。此外,我还创建了一个带有注释的Entity类。但是当我尝试连接数据库时,它即使使用不同的URL

  • 15.3 控制数据库连接 15.3.1 DataSource Spring用DataSource来保持与数据库的连接。DataSource是JDBC规范的一部分同时是一种通用的连接工厂。它使得框架或者容器对应用代码屏蔽连接池或者事务管理等底层逻辑。作为开发者,你无需知道连接数据库的底层逻辑;这只是创建datasource的管理员该负责的模块。在开发测试过程中你可能需要同时扮演双重角色,但最终上线时

  • 12.3. 控制数据库连接 12.3.1. DataSourceUtils类 DataSourceUtils作为一个帮助类提供易用且强大的数据库访问能力, 我们可以使用该类提供的静态方法从JNDI获取数据库连接以及在必要的时候关闭之。 它提供支持线程绑定的数据库连接(比如使用DataSourceTransactionManager 的时候,将把数据库连接绑定到当前的线程上)。 注:getDataS

  • 测试通过,即数据输入数据库,检查,一切正常。 但当我在调试模式下运行测试,在测试末尾放一个断点,尝试连接到数据库时,它是空的,连表都没有,更别提数据了。要连接,我使用dbever。在连接字符串中,我编写jdbc:h2:mem:mytestdb;db_close_on_exit=false(我尝试了jdbc:h2:tcp://localhost:9092/mem:mytestdb)。检查连接通过,写