Class EmbeddedDatabase


  • public class EmbeddedDatabase
    extends java.lang.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 Summary

      Constructors 
      Constructor Description
      EmbeddedDatabase​(java.lang.String path, java.lang.String username, java.lang.String password)
      Erzeugt eine neue Instanz der Datenbank.
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      void create()
      Erstellt eine neue Datenbank, falls sie noch nicht existiert.
      void delete()
      Loescht die Datenbank gnadenlos.
      void executeSQLScript​(java.io.File file)
      Fuehrt das uebergebene File mit SQL-Kommandos auf der Datenbank aus.
      boolean exists()
      Prueft, ob die Datenbank existiert.
      java.sql.Connection getConnection()
      Liefert eine Connection zu dieser Datenbank.
      DBService getDBService()
      Liefert einen DBService zu dieser Datenbank.
      java.lang.String getMD5Sum()
      Liefert eine MD5-Checksumme (BASE64-encoded) der Datenbank-Eigenschaften.
      java.io.File getPath()
      Liefert den Verzeichnis-Pfad, in dem sich die Datenbank befindet.
      void repair​(com.mckoi.util.UserTerminal terminal)
      Repariert die Datenbank.
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Constructor Detail

      • EmbeddedDatabase

        public EmbeddedDatabase​(java.lang.String path,
                                java.lang.String username,
                                java.lang.String password)
                         throws java.lang.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:
        java.lang.Exception
    • Method Detail

      • exists

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

        public void create()
                    throws java.io.IOException
        Erstellt eine neue Datenbank, falls sie noch nicht existiert.
        Throws:
        java.io.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​(java.io.File file)
                              throws java.io.IOException,
                                     java.sql.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:
        java.io.IOException - Wenn beim Lesen des SQL-Scripts Fehler auftraten.
        java.sql.SQLException - Wenn beim Ausfuehren Fehler auftraten.
      • getPath

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

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

        public java.lang.String getMD5Sum()
                                   throws java.lang.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:
        java.lang.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 java.sql.Connection getConnection()
                                          throws java.lang.Exception
        Liefert eine Connection zu dieser Datenbank.
        Returns:
        Connection.
        Throws:
        java.lang.Exception