我正在尝试连接以执行集成测试,为此,我需要H2数据库重新创建一些视图。
我正在使用以下属性:
<bean id="internalXaDataSource" class="org.h2.jdbcx.JdbcDataSource">
<property name="URL" value="jdbc:h2:./target/testing/h2db/#{randomUUID1.toString()}/:testdb;MODE=MSSQLServer"/>
<property name="description" value="#{randomUUID1.toString()}jdbcXa"/>
<property name="user" value="sa"/>
<property name="password" value=""/>
</bean>
<bean id="h2Server" class="org.h2.tools.Server" factory-method="createTcpServer" init-method="start" destroy-method="stop">
<constructor-arg>
<array>
<value>-tcp</value>
<value>-tcpAllowOthers</value>
<value>-tcpPort</value>
<value>8043</value>
</array>
</constructor-arg>
</bean>
我尝试了几种不同的连接方式:
然后使用jdbc连接URL与其连接,例如:
jdbc:h2:./ target / testing / h2db /#3434-sdfjsd9o3849-df34 /:testdb; MODE = MSSQLServer
我的连接成功,但是数据库为空,未显示任何表。但是,使用信息模式获取数据库中的模式列表将显示testdb数据库在那里。
我尝试了几种不同的URL,但是没有一个连接。例如
jdbc:h2:tcp:// localhost:8043 / testdb:public; LOCK_MODE = 0
jdbc:h2:tcp:// localhost:8043 /:testdb; LOCK_MODE = 0
这更糟-无法连接-只是挂起。
<bean id="internalXaDataSource" class="org.h2.jdbcx.JdbcDataSource" depends-on="h2Server">
<property name="URL" value="jdbc:h2:tcp://localhost:8043/mem:public;MODE=MSSQLServer"/>
<property name="description" value="#{randomUUID1.toString()}jdbcXa"/>
<property name="user" value="sa"/>
< property name="password" value=""/>
</bean>
这也只是在尝试连接时挂起。
您能解释我在做什么错吗? 谢谢
答案 0 :(得分:0)
弄清楚了。已经使用IntelliJ调试器暂停了正在运行的集成测试,因此我可以连接到H2。但是,将断点设置设置为停止整个JVM。通过在IntelliJ中编辑故障设置以仅暂停线程来解决。然后能够通过上面的第三种方法进行连接。