Sie können den H2 -Webserver in Ihrer Anwendung ausführen , der auf dieselbe speicherinterne Datenbank zugreift. Sie können auch mit einem generischen JDBC-Client wie SquirrelSQL auf den H2 zugreifen, der im Servermodus ausgeführt wird .
AKTUALISIEREN:
Server webServer = Server.createWebServer("-web,-webAllowOthers,true,-webPort,8082").start();
Server server = Server.createTcpServer("-tcp,-tcpAllowOthers,true,-tcpPort,9092").start();
Jetzt können Sie jdbc:h2:mem:foo_db
innerhalb desselben Prozesses über eine URL eine Verbindung zu Ihrer Datenbank herstellen oder die foo_db
Datenbank mit durchsuchen localhost:8082
. Denken Sie daran, beide Server zu schließen. Siehe auch: Auf die H2-Datenbank im Speichermodus kann die Konsole nicht zugreifen .
Sie können auch Spring verwenden:
<bean id="h2Server" class="org.h2.tools.Server" factory-method="createTcpServer" init-method="start" destroy-method="stop" depends-on="h2WebServer">
<constructor-arg value="-tcp,-tcpAllowOthers,true,-tcpPort,9092"/>
</bean>
<bean id="h2WebServer" class="org.h2.tools.Server" factory-method="createWebServer" init-method="start" destroy-method="stop">
<constructor-arg value="-web,-webAllowOthers,true,-webPort,8082"/>
</bean>
<bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource" destroy-method="close" depends-on="h2Server">
<property name="driverClass" value="org.h2.Driver"/>
<property name="jdbcUrl" value="jdbc:h2:mem:foo_db"/>
</bean>
Übrigens sollten Sie sich nur auf Behauptungen verlassen und nicht auf das manuelle Durchsuchen des Datenbankinhalts. Verwenden Sie dies nur zur Fehlerbehebung.
Hinweis: Wenn Sie das Spring-Test-Framework verwenden, werden keine Änderungen angezeigt, die von einer laufenden Transaktion vorgenommen wurden, und diese Transaktion wird unmittelbar nach dem Test zurückgesetzt.
<constructor-arg value="-web,-webAllowOthers,-webPort,8082"/>
Server.createTcpServer("-tcpPort" ,"9092", "-tcpAllowOthers")
Server.createWebServer("-webPort", "8082", "-tcpAllowOthers")
Server.createWebServer("-web", "-webAllowOthers", "-webPort", "8082").start();
Für H2 können Sie während einer Debugging-Sitzung einen Webserver in Ihrem Code starten, wenn Sie über ein Datenbankverbindungsobjekt verfügen. Sie können diese Zeile zu Ihrem Code oder als 'Überwachungsausdruck' (dynamisch) hinzufügen:
Das Server-Tool startet lokal einen Webbrowser, mit dem Sie auf die Datenbank zugreifen können.
quelle
In H2 funktioniert für mich Folgendes:
Ich codiere und starte den Server wie folgt:
Damit wird der Server an
localhost
Port 9092 gestartet.Stellen Sie dann im Code eine DB-Verbindung unter der folgenden JDBC-URL her:
Während des Debuggens verwende ich als Client zur Überprüfung der Datenbank die von H2 bereitgestellte, die gut genug ist, um sie zu starten. Sie müssen lediglich die folgende Java-Hauptdatei separat starten
Dadurch wird ein Webserver mit einer App auf 8082 gestartet und ein Browser gestartet
localhost:8082
Anschließend können Sie die vorherige URL eingeben, um die Datenbank anzuzeigen
quelle
Mit HSQLDB haben Sie mehrere integrierte Optionen.
Es gibt zwei GUI-Datenbankmanager und eine Befehlszeilenschnittstelle zur Datenbank. Die Klassen für diese sind:
Sie können eine der oben genannten Funktionen von Ihrer Anwendung aus starten und auf die In-Memory-Datenbanken zugreifen.
Ein Beispiel mit JBoss finden Sie hier:
http://docs.jboss.org/jbpm/v3.2/userguide/html/ch07s03.html
Sie können einen Server auch mit Ihrer Anwendung starten und auf eine speicherinterne Datenbank verweisen.
quelle
Sie können es als JMX-Funktion verfügbar machen, die über JConsole gestartet werden kann:
XML-Kontext:
quelle
Dies ist ein Play 2-Controller zum Initialisieren der H2-TCP- und Webserver:
quelle
Für HSQLDB hat Folgendes bei mir funktioniert:
Und das brachte die GUI mit meinen Tabellen und Daten auf.
Ich habe auch die Swing-Version ausprobiert, aber sie hatte nur eine
main
, und ich war mir nicht sicher, welche Argumente zu bestehen waren. Wenn jemand weiß, bitte hier posten.Nur weil ich stundenlang nach dem richtigen Datenbanknamen gesucht habe: Der Name der Datenbank ist der Name Ihrer Datenquelle. Versuchen Sie es also mit der URL jdbc: hsqldb: mem: dataSource, wenn Sie eine Datenquellen-Bean mit id = dataSource haben. Wenn dies nicht funktioniert, versuchen Sie es mit testdb, der Standardeinstellung.
quelle
Ich habe ein Problem mit der Remote-Verbindung von H2 Version 1.4.190 zu inMemory (sowie in der Datei),
Connection is broken: "unexpected status 16843008"
bis kein Downgrade auf 1.3.176 durchgeführt wurde. Siehe Grails beim Zugriff auf den H2 TCP-Server hängtquelle
Dies ist eher ein Kommentar zum vorherigen Beitrag von Thomas Mueller als eine Antwort, hat aber nicht genug Ruf dafür. Eine andere Möglichkeit, die Verbindung herzustellen, wenn Sie eine Spring JDBC-Vorlage sind, besteht darin, Folgendes zu verwenden:
Wenn Sie also im Debug-Modus der Ansicht "Ausdrücke" in Eclipse hinzufügen, wird der Browser geöffnet, in dem die H2-Konsole angezeigt wird:
Eclipse Expressions-Ansicht
H2-Konsole
quelle
Ich weiß nicht, warum es auf Ihren Maschinen gut funktioniert, aber ich musste einen Tag damit verbringen, dass es funktioniert.
Der Server arbeitet mit Intellij Idea U über die URL "jdbc: h2: tcp: // localhost: 9092 / ~ / default".
"localhost: 8082" im Browser funktioniert ebenfalls.
Ich habe dies in die Datei mvc-dispatcher-servlet.xml aufgenommen
quelle
Was ist mit dem bequemen Anzeigen (und Bearbeiten) des Inhalts über ODBC & MS-Access, Excel? Softwareversionen ::
H2 Server:
Windows 10 ODBC-Datenquellenkonfiguration, die von jedem ODBC-Client verwendet werden kann: Im Feld Datenbank muss der im Parameter '-key' angegebene Name verwendet werden.
quelle