Benutzer-Werkzeuge

Webseiten-Werkzeuge


schule:db4o

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

Beide Seiten der vorigen RevisionVorhergehende Überarbeitung
Nächste Überarbeitung
Vorhergehende Überarbeitung
schule:db4o [2015-12-15 15:48] – [db4o] Link korr. marco.bakeraschule:db4o [2021-04-21 15:34] (aktuell) – [Für Java] youtube link pintman
Zeile 1: Zeile 1:
 +====== db4o ======
 +
 +[[wpde>db4o]] steht für "database for objects" und ist eine bjektorientierte [[Datenbanken|Datenbank]]. Die Inhalte werden also nicht in Tabellen abgelegt, sondern direkt als Objekt gespeichert.
 +
 +===== Für Java =====
 +
 +
 +Ich habe mir das Paket angeschaut und ein Beispiel für Java programmiert und mitgefilmt. Das Ganze habe ich in der IDE Eclipse durchgeführt.
 +
 +<html>
 +<iframe width="560" height="315" src="https://www.youtube-nocookie.com/embed/4MfzGISHrsI" title="YouTube video player" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe>
 +</html>
 +===== Für C# und .NET =====
 +
 +Für unsere Versuche benötigen wir eine einfache Klasse "Person".
 +
 +<code csharp>
 +    class Person
 +    {
 +        string name;
 +
 +        public Person(string meinName)
 +        {
 +            name = meinName;
 +        }
 +
 +        public void NameÄndern(string neuerName)
 +        {
 +            name = neuerName;
 +        }
 +
 +        public Boolean Heißt(String einName)
 +        {
 +            return name.Equals(einName);
 +        }
 +
 +        public override string ToString()
 +        {
 +            return name;
 +        }
 +    }
 +</code>
 +
 +Um db4o benutzen zu können, importieren wir die nötigen Klassen.
 +
 +<code csharp>
 +using Db4objects.Db4o;
 +</code>
 +
 +In einem einfachen Konsolenprogramm erzeugen wir nun eine Datenbank und zwei Personen Max und Moni. Diese werden anschließend in der Datenbank gespeichert.
 +
 +
 +<code csharp>
 +IEmbeddedObjectContainer db = Db4oEmbedded.OpenFile("datenbank.db4o");
 +
 +Console.WriteLine("Nun erstellen wir Max und Moni...");
 +Person max = new Person("Max");
 +Person moni = new Person("Moni");
 +
 +Console.WriteLine("... und speichern sie in der Datenbank ab");
 +db.Store(max);
 +db.Store(moni);
 +</code>
 +
 +Um an die Objekte in der Datenbank zu gelangen, lassen wir uns alle Personen ausgeben, die in der Datenbank gespeichert sind.
 +
 +<code csharp>
 +Console.WriteLine("Wir geben alle Personen aus, die sich in der Datenbank befinden.");
 +// Wir suchen nach allen Personen in der Datenbank
 +IList<Person> gefunden = db.Query<Person>();
 +foreach (Person person in gefunden)
 +{
 +    Console.WriteLine("> " + person.ToString());
 +}
 +</code>
 +
 +  Ausgabe:
 +  > Max
 +  > Moni
 +
 +Wenn wir nachträglich ein Objekt ändern, müssen wir der Datenbank die Änderung mitteilen. Das machen wir nun, indem wir den Namen von Max ändern.
 +
 +<code csharp>
 +Console.WriteLine("Wir können die Objekte auch ändern: z.B. den Namen.");
 +max.NameÄndern("Maxi");
 +Console.WriteLine("Und speichern das aktualisierte Obekt wieder ab.");
 +db.Store(max);
 +
 +Console.WriteLine("So sieht der Inhalt der Datenbank nun aus:");
 +gefunden = db.Query<Person>();
 +foreach (Person person in gefunden)
 +{
 +    Console.WriteLine("> " + person.ToString());
 +}
 +
 +</code>
 +
 +  Ausgabe:
 +  > Maxi
 +  > Moni
 +
 +Wir können die Datenbank gezielt nach bestimmten Objekte durchsuchen. Dazu übergeben wir der Query-Methode ein Prädikat, das für alle Objekte erfüllt sein muss, die wir suchen.
 +
 +<code csharp>
 +Console.WriteLine("Wir können auch nur bestimmte Personen ausgeben - z.B. alle Monis");
 +IList<Person> monis = db.Query<Person>(p => p.Heißt("Moni"));
 +foreach (Person eineMoni in monis)
 +{
 +    Console.WriteLine("> " + eineMoni);
 +}
 +</code>
 +
 +  Ausgabe:
 +  > Moni
 +  
 +Zum Schluss löschen wir alle Personen wieder aus der Datenbank.
 +
 +<code csharp>
 +Console.WriteLine("Nun löschen wir alle Personen aus der Datenbank.");
 +IList<Person> allePersonen = db.Query<Person>();
 +            
 +foreach (Person person in allePersonen) 
 +{
 +    Console.WriteLine("Lösche " + person.ToString());
 +    db.Delete(person);
 +}
 +</code>
 +
 +  Ausgabe:
 +  > Lösche Maxi
 +  > Lösche Moni
 +
 +
 +Um die Datenkbankverbindung sauber zu beenden, schließen wir zum Schluss die Datenbank.
 +
 +<code csharp>
 +Console.WriteLine("Am Ende schließen wir unsere Datenbank wieder");
 +db.Close();
 +</code>            
  
schule/db4o.txt · Zuletzt geändert: 2021-04-21 15:34 von pintman