java .vm h2_java-H2服务器在调试时挂起
由于正在創建內存數據庫,因此啟動tcp服務器將無濟于事.
我建議改為在線程中啟動控制臺,并在同一段代碼(例如,使用jdbc)中打開與此數據庫的連接,但不要關閉/釋放它.
使用此代碼段執行此操作:請根據H2文檔添加其他選項,例如允許其他人使用(我建議暫時將其保留)
org.h2.tools.Server.createWebServer().start();
使用jdbc / jooq在第二個線程中打開數據庫將如下所示(這是在Nashorn javascript中,但可以輕松地適應Java):
var conn = (new org.h2.Driver()).connect('jdbc:h2:mem:sampledb',new java.util.Properties());
var DB = org.jooq.impl.DSL.using(conn, org.jooq.SQLDialect.H2);
這樣,基于內存的數據庫將不會意外關閉,您將能夠遠程訪問它.希望將其放在線程中可以保護您免受斷點的影響.
更新:根據與該問題原始作者的討論,最佳解決方案是在單獨的過程中打開基于內存的H2,并在其上提供一個tcp服務器.這解決了問題,但是在一個單獨的過程中.
這是開始單獨過程的方法:
java -jar h2-1.4.188.jar -tcp -tcpPort 9092 -baseDir mem:mydb
這是要使用的JDBC網址:jdbc:h2:tcp:// localhost:9092 / mem:mydb
重要說明:如果該基于內存的數據庫上的所有連接均已關閉,則內容將消失.因此,應謹慎使用此方法.如果您需要在測試中保持持久性,請使用基于文件的標準H2 DB.
總結
以上是生活随笔為你收集整理的java .vm h2_java-H2服务器在调试时挂起的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: c++求n的几次方_14.八年级数学:若
- 下一篇: druid jar包_使用druid实现