Vous pouvez exécuter le serveur Web H2 dans votre application qui accédera à la même base de données en mémoire. Vous pouvez également accéder au H2 fonctionnant en mode serveur en utilisant n'importe quel client JDBC générique comme SquirrelSQL .
METTRE À JOUR:
Server webServer = Server.createWebServer("-web,-webAllowOthers,true,-webPort,8082").start();
Server server = Server.createTcpServer("-tcp,-tcpAllowOthers,true,-tcpPort,9092").start();
Vous pouvez maintenant vous connecter à votre base de données via une jdbc:h2:mem:foo_db
URL dans le même processus ou parcourir la foo_db
base de données en utilisant localhost:8082
. N'oubliez pas de fermer les deux serveurs. Voir aussi: La base de données H2 en mode mémoire n'est pas accessible par la console .
Vous pouvez également utiliser Spring:
<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>
BTW, vous ne devriez dépendre que des assertions et non de la lecture manuelle du contenu de la base de données. Utilisez ceci uniquement pour le dépannage.
NB si vous utilisez le framework de test Spring, vous ne verrez pas les modifications apportées par une transaction en cours et cette transaction sera annulée immédiatement après le test.
<constructor-arg value="-web,-webAllowOthers,-webPort,8082"/>
Server.createTcpServer("-tcpPort" ,"9092", "-tcpAllowOthers")
Server.createWebServer("-webPort", "8082", "-tcpAllowOthers")
Server.createWebServer("-web", "-webAllowOthers", "-webPort", "8082").start();
Pour H2, vous pouvez démarrer un serveur Web dans votre code pendant une session de débogage si vous disposez d'un objet de connexion à la base de données. Vous pouvez ajouter cette ligne à votre code ou en tant qu '«expression de surveillance» (dynamiquement):
L'outil serveur lancera un navigateur Web localement qui vous permettra d'accéder à la base de données.
la source
En H2, ce qui fonctionne pour moi est:
Je code, en démarrant le serveur comme:
Cela démarre le serveur sur le
localhost
port 9092.Ensuite, dans le code, établissez une connexion DB sur l'URL JDBC suivante:
Lors du débogage, en tant que client pour inspecter la base de données, j'utilise celui fourni par H2, ce qui est assez bon, pour le lancer, il vous suffit de lancer le java main suivant séparément
Cela démarrera un serveur Web avec une application sur 8082, lancera un navigateur sur
localhost:8082
Et puis vous pouvez entrer l'URL précédente pour voir la base de données
la source
Avec HSQLDB, vous disposez de plusieurs options intégrées.
Il existe deux gestionnaires de base de données GUI et une interface de ligne de commande vers la base de données. Les classes pour ceux-ci sont:
Vous pouvez démarrer l'un des éléments ci-dessus à partir de votre application et accéder aux bases de données en mémoire.
Un exemple avec JBoss est donné ici:
http://docs.jboss.org/jbpm/v3.2/userguide/html/ch07s03.html
Vous pouvez également démarrer un serveur avec votre application, en le faisant pointer vers une base de données en mémoire.
la source
Vous pouvez l'exposer en tant que fonctionnalité JMX, démarrable via JConsole:
Contexte XML:
la source
Il s'agit d'un contrôleur Play 2 pour initialiser les serveurs H2 TCP et Web:
la source
Pour HSQLDB, ce qui suit a fonctionné pour moi:
Et cela a amené l'interface graphique avec mes tables et mes données.
J'ai aussi essayé la version Swing, mais elle n'en avait qu'un
main
, et je n'étais pas sûr des arguments à passer. Si quelqu'un sait, veuillez poster ici.Juste parce que j'ai cherché pendant des heures le bon nom de base de données: le nom de la base de données est le nom de votre source de données. Essayez donc avec l'URL jdbc: hsqldb: mem: dataSource si vous avez un bean de source de données avec id = dataSource. Si cela ne fonctionne pas, essayez testdb qui est la valeur par défaut.
la source
J'ai un problème avec la connexion à distance de la version 1.4.190 de H2 à inMemory (ainsi que dans le fichier) avec
Connection is broken: "unexpected status 16843008"
jusqu'à ce que ne pas rétrograder à 1.3.176. Voir Grails, l'accès au serveur H2 TCP se bloquela source
C'est plus un commentaire au précédent post de Thomas Mueller qu'une réponse, mais il n'a pas assez de réputation pour cela. Une autre façon d'obtenir la connexion si vous êtes Spring JDBC Template consiste à utiliser ce qui suit:
Donc, en mode débogage, si vous ajoutez à la vue "Expressions" dans Eclipse, cela ouvrira le navigateur vous montrant la console H2:
Vue Expressions Eclipse
Console H2
la source
Je ne sais pas pourquoi cela fonctionne bien sur vos machines, mais j'ai dû passer une journée pour que cela fonctionne.
Le serveur fonctionne avec Intellij Idea U via l'url "jdbc: h2: tcp: // localhost: 9092 / ~ / default".
"localhost: 8082" dans le navigateur fonctionne également très bien.
J'ai ajouté ceci dans le mvc-dispatcher-servlet.xml
la source
Qu'en est-il de visualiser (et également de modifier) confortablement le contenu sur ODBC et MS-Access, Excel? Versions de logiciels ::
Serveur H2:
Configuration de la source de données ODBC Windows10 qui peut être utilisée par n'importe quel client ODBC: Dans le champ Base de données, le nom donné dans le paramètre «-key» doit être utilisé.
la source