Class EmbeddedDatabase

java.lang.Object
de.willuhn.datasource.db.EmbeddedDatabase

public class EmbeddedDatabase extends Object
Embedded Datenbank die man jederzeit gut gebrauchen kann. Einfach eine Instanz mit User, Passwort und Pfad im Konstruktor erzeugen, die Datenbank wird geladen oder (wenn sie noch nicht existiert) automatisch im genannten Verzeichnis angelegt.
  • Constructor Details

    • EmbeddedDatabase

      public EmbeddedDatabase(String path, String username, String password) throws Exception
      Erzeugt eine neue Instanz der Datenbank. Existiert sie noch nicht, wird sie automatisch angelegt.
      Parameters:
      path - Verzeichnis, in dem sich die Datenbank befindet bzw angelegt werden soll.
      username - Username.
      password - Passwort.
      Throws:
      Exception
  • Method Details

    • exists

      public boolean exists()
      Prueft, ob die Datenbank existiert.
      Returns:
      true, wenn sie existiert.
    • create

      public void create() throws IOException
      Erstellt eine neue Datenbank, falls sie noch nicht existiert.
      Throws:
      IOException - Wenn ein Fehler bei der Erstellung auftrat.
    • delete

      public void delete()
      Loescht die Datenbank gnadenlos. Diese Funktion bitte MIT BEDACHT verwenden!.
    • executeSQLScript

      public void executeSQLScript(File file) throws IOException, SQLException
      Fuehrt das uebergebene File mit SQL-Kommandos auf der Datenbank aus. Die Funktion liefert kein DBIteratorImpl zurueck, weil sie typischerweise fuer die Erstellung der Tabellen verwendet werden sollte. Wenn das Plugin also bei der Installation seine SQL-Tabellen erstellen will, kann es das am besten hier machen.
      Parameters:
      file - das auszufuehrende SQL-Script.
      Throws:
      IOException - Wenn beim Lesen des SQL-Scripts Fehler auftraten.
      SQLException - Wenn beim Ausfuehren Fehler auftraten.
    • getPath

      public File getPath()
      Liefert den Verzeichnis-Pfad, in dem sich die Datenbank befindet.
      Returns:
      Pfad zur Datenbank.
    • getDBService

      public DBService getDBService() throws RemoteException
      Liefert einen DBService zu dieser Datenbank.
      Returns:
      DBService.
      Throws:
      RemoteException
    • getMD5Sum

      public String getMD5Sum() throws Exception
      Liefert eine MD5-Checksumme (BASE64-encoded) der Datenbank-Eigenschaften. Diese kann gegen eine gespeicherte Version verglichen werden, um zu pruefen, ob die Datenbank den erwarteten Eigenschaften entspricht. Das ist z.Bsp. sinnvoll, wenn man pruefen will, ob das Datenbank-Modell zur Software-Version passt.
      Szenario: Eine Anwendung moechte seine embedded Datenbank auf den aktuellen Stand bringen, weiss jedoch nicht, welche SQL-Statements hierfuer noetig sind, da das momentane Datenbank-Layout nicht bekannt ist.
      Loesung: Die Anwendung haelt fuer alle moeglichen Versionsstaende der Datenbank je eine MD5-Summe bereit und vergleicht diese mit der aktuellen. Somit kann sie herausfinden, welche SQL-Befehle noch noetig sind, um die Anwendung auf den aktuellen Stand zu bringen.
      Eine weitere Einsatzmoeglichkeit ist das Detektieren von Datenbank-Manipulationen. Sprich: Wurde die Datenbank von einem Dritten geaendert, laesst sich dies durch Pruefen der Checksumme herausfinden.
      Returns:
      MD5-Checksumme.
      Throws:
      Exception
    • repair

      public void repair(com.mckoi.util.UserTerminal terminal)
      Repariert die Datenbank.
      Parameters:
      terminal - Terminal, welches zur Ausgabe und Interaktion verwendet werden soll. UserTerminal ist ein Interface und muss vom Benutzer implementiert werden.
    • getConnection

      public Connection getConnection() throws Exception
      Liefert eine Connection zu dieser Datenbank.
      Returns:
      Connection.
      Throws:
      Exception