# db4o - Datenbank auf USB-stick



## ACEofSPADES (23. Jul 2009)

Hallo Leute,

ich möchte mal db4o ausprobieren und eine kleine Anwendung programmieren, die ich immer mitnehme auf meinem USB-stick. Jetzt habe ich aber über google nur Beispiele gefunden, wo man die Datenbank üder OpenFile und dem exakten Pfad aufruft. Hat schon jemand db4o in einer jar-Anwendung eingebettet programmiert und kann mir kurz erklären, wie ich mit wechselnden Pfaden/Laufwerksbuchstaben klar kommen kann?


----------



## woezelmann (24. Jul 2009)

Ich hab schon mal ein Programm mit transportabler h2database geschrieben. Hab einfach nen relativen Pfad zur .jar angegeben.
Ansonsten könntest du den Pfad auch in ne .properties-Datei auslagern, die beim starten eingelesen wird.


----------



## Gelöschtes Mitglied 5909 (24. Jul 2009)

in der regel ist der Pfad der Datei(en) der embedded Datenbanken bei der jdbc url anzugeben.
Wenn du z.b. den String der Driverurl dynamisch zusammenbaust, ist das kein problem.


```
public static void main( String[] args ) {
        File f = new File("");
        System.out.println(f.getAbsolutePath());
        f = new File("databasefiles");
        System.out.println(f.getAbsolutePath());
        
        System.out.println(System.getProperty("user.dir"));
    }
```



> G:\Eigene Dateien\Eclipse\ws\test
> G:\Eigene Dateien\Eclipse\ws\test\databasefiles
> G:\Eigene Dateien\Eclipse\ws\test



sprich du kannst die einfach in ein unterverzeichnis vom aktuellen verzeichnis packen (oder auch ins gleiche).
Vorher musst du noch prüfen, ob das Verzeichnis existiert und ggf mit File#mkdirs() die Verzeichnisse erzeugen

bei H2 Datenbanz z.B so:


```
public static void main( String[] args ) throws SQLException {
        File file = new File("storage");
        String path = file.getAbsolutePath();
        String name = File.separator + "myDatabase";
        String jdbcUrl = "jdbc:h2:file:" + path + name + ";CACHE_SIZE=" + 10000;
        System.out.println(jdbcUrl);
        Connection connection = DriverManager.getConnection(jdbcUrl);
    }
```



> jdbc:h2:file:G:\Eigene Dateien\Eclipse\ws\test\storage\myDatabase;CACHE_SIZE=10000


----------



## L-ectron-X (24. Jul 2009)

Guck auch mal hier, vielleicht hilft dir das weiter: http://www.java-forum.org/java-basi...ichten-um-freemind-zum-laufen-zu-bringen.html


----------

