Benutzer-Werkzeuge

Webseiten-Werkzeuge


schule:db4o

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

Nächste Überarbeitung
Vorhergehende Überarbeitung
schule:db4o [2013-11-20 18:01] – angelegt marco.bakeraschule:db4o [2021-04-21 15:34] (aktuell) – [Für Java] youtube link pintman
Zeile 1: Zeile 1:
 ====== db4o ====== ====== db4o ======
  
-[[http://www.db4o.com/deutsch/|db4o]] steht für "database for objects" und ist eine [[oodb|objekt orientierte Datenbank]]. Die Inhalte werden also nicht in Tabellen abgelegt, sondern direkt als Objekt gespeichert.+[[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.1384966912.txt.gz · Zuletzt geändert: 2017-04-19 08:39 (Externe Bearbeitung)