# embedded H2; wie tables anlegen?



## Gast (5. Apr 2007)

Hallo zusammen,
ich habe eine H2, die ich über localhost auch administrieren kann. Meine Anwendung connected sich aber zu der embedded DB (wie's auch sein soll).
Wie kann ich den nun da die Tables anlegen? Hab' nix im Forum gefunden. Wenn's ein Tutorial oder sonstwie einen link gibt...im Voraus Danke!!!
Gruß an dieses saustarke Forum
Andreas, der seinen Benutzernamen vergessen hat und sich deshalb nicht anmelden kann


----------



## AlArenal (5. Apr 2007)

Per JDBC 'von Hand', Import eines SQL-Skripts und dergleichen..


----------



## robertpic71 (5. Apr 2007)

Ich bevorzuge da auch ein importiertes SQL-Script. Am besten mit einem eindeutigen Trennzeichen zwischen den Commands, damit man jedes SQL-Befehl extra ausführt (und ev. Fehler ignorieren und weitermachen kann).

Jetzt aber zu H2:

Variante 1: auf das File zugreifen
Auch die  embedded Datenbank arbeitet mit Files (außer man macht eine RAM-Datenbank). Zu den Files kommt man auch über die Weboberfläche, die Url lautet dann: jdbc:h2:file:C:\\etc\\artikel7

Variante 1b) - 1z)
Auf die Files kann man natürlich mit dem JDBC-Tool (z.B. SQL Explorer im Eclipse) auf die Files zugreifen.

Bei dieser Art geht aber nur Anwendung oder Wartung.

Variante 2: den TCP-Server bei Bedarf mitstarten
Meine Web-Kataloglösung ist in der Zielgeraden. Wenn ich auf dem Produktionssystem in die Datenbank schauen will, starte ich den TCP-Server über ein Admin-Menü nach:


```
import org.h2.tools.Server;
...
try {
   String[] args = new String[]{};    //Startparameter hier setzten, z.B. tcpAllowOthers
   server = Server.createTcpServer(args).start();
} catch (SQLException e) {
...
```

Die Url lautet in diesem Fall:
_jdbc:h2:tcp:localhost/C:/etc/artikel7_

Wichtig ist hier, dass der Datenbankname gleich ist, d.h. wenn die embedded Datenbank den Dateipfad in der Url hat, so gehört das zum Datenbanknamen. 

Das gleiche funktioniert auch mit Ram-Datenbanken, hier muss der URL dann:
_jdbc:h2:tcp:localhost/mem:index 
_lauten

Variante 2b)-2z)
Auch hier kann man mit jedem JDBC-Tool auf die Datenbank zugreifen.

Nachtrag:
Man kann sich mit Server.createWebServer auch gleich die Adminoberfläche mitstarten.


----------



## Gast (6. Apr 2007)

Herzlichen Dank!


----------

