Die e-learning Lernplattform
ichlerns  online
Home > Coden > Beziehungen

Datenbank mit Objekten:

Dieses Beispiel funktioniert, beinhaltet jedoch einige Fehler syntaktischer Art und auch im Entwurf. Die Vorgehensweise ist auch nicht resourcenschonend. Versuche dies zu ergründen, begründen die einzelnen Punkte und bessere den Code entwprechend aus. Fehler sind wichtig - denn aus Fehlern lernt man!

Mittels JavaScript besteht die Möglichkeit Objekte als Datensätze zu verwenden, um diese in einem Array verwalten zu können.

Wir definieren in unserem Beispiel die Klasse Person. Sie besitzt die Eigenschaften: groesze, geschlecht und alter. Ihre einzige Methode sei antworten().

Zuerst versuchen wir ein solches Objekt zu erstellen und in ein Array zu legen.

Datenbank anlegen

 datensatz = new Array();
                
 //Methode der Klasse Person
 function funktion_antworten(){
     return("Ich bin "+this.groesze+"cm grosz.");
 }
 
 function Person(p_groesze,p_geschlecht,p_alter){
     this.groesze = p_groesze;
     this.geschlecht = p_geschlecht;
     this.alter = p_alter;
     this.antworte = funktion_antworten;
 }
 
 datensatz[0] = new (89,"maennlich",37);
 ausgabe = datensatz[0].antworte();
 document.write(ausgabe);

Anwendung 1

Wir erweitern nun auf drei Datensätze und testen, ob dies mit einer For-Schleife zum Abfragen geht.

Datenbank testen

 datensatz = new Array;
 function funktion_antworten(){
     return("Ich bin "+this.groesze+"cm groesze;.");
 }
 function Person(p_groesze,p_geschlecht,p_alter){
     this.groesze = p_groesze;
     this.geschlecht = p_geschlecht;
     this.alter = p_alter;
     this.antworte = funktion_antworten;
 }
 
 datensatz[0] = new (67,"maennlich",67);
 datensatz[1] = new (150,"weiblich",15);
 datensatz[2] = new (89,"maennlich",37);
 
 for (i = 0;i<datensatz.length;i++){
     ausgabe = datensatz[i].antworte();
     document.write(ausgabe+"<br>");
 }

Anwendung 2

Nun erweitern wir den Code um die Eingabemöglichkeit der Daten:

Datenbank mit Eingabefenster

 datensatz = new Array;
 var ii = 0;

function funktion_antworten(){	//Methode der Klasse
     return("Ich bin "+this.groesze+"cm grosz.");
 }

 function Person(p_groesze,p_geschlecht,p_alter){
     this.groesze = p_groesze;
     this.geschlecht = p_geschlecht;
     this.alter = p_alter;
     this.antworte = funktion_antworten;
 }
     
 p1 = window.prompt("Zahl fuer Groeze eingeben");
 p2 = window.prompt("Buchstaben fuer Geschlecht eingeben");
 p3 = window.prompt("Zahl fuer Alter eingeben");
 datensatz[ii] = new (p1,p2,p3);
 
 for (i = 0;i<datensatz.length;i++){
     ausgabe = datensatz[i].antworte();
     document.write(ausgabe+"<br>");
     }

Anwendung 3

Naja ein paar Änderungen waren schon noch notwendig. Die Variablen der Datensätze wurden geändert. Damit das Programm durchgehend läuft, wurde eine while(1)-Schleife verwendet. Diese wird nur abgebrochen, wenn der Anwender kein Ja drückt. In JavaScript kann der Array beliebig erweitert werden. Wenn die Schleife verlassen wird, erfolgt die Ausgabe aller Daten.

Datenbank in Dauerschleife und Ausgabe als Html Tabelle

 datensatz = new Array();
 var ii = 0;
 
 function funktion_antworten(){
    // gibt den Datensatz als Tabellen-Reihe aus
    return("<tr><td>" + this.myName + "</td><td>" + this.geschlecht + "</td><td>" + this.alter + "</td></tr>");
 }
 
 function Person(p_myName,p_geschlecht,p_alter){
     this.myName = p_myName;
     this.geschlecht = p_geschlecht;
     this.alter = p_alter;
     this.antworte = funktion_antworten;
 }

 alert("test")

 while(1){
     a = window.prompt("Moechten Sie einen weiteren Datensatz anlegen?  weiter=y");
     
     if(a == "y"){
         p1 = window.prompt("Name eingeben");
         p2 = window.prompt("Geschlecht eingeben");
         p3 = window.prompt("Zahl fuer Alter eingeben");
         
         datensatz[ii] = new (p1,p2,p3);
         ii++;
     }else{
         break;
     }
     
 }
 
 // Html Tabelle Anfang 
 document.write("<table border=1>");
 // Html Tabelle Spaltenüberschriften
 document.write("<tr><td>Name</td><td>Geschlecht</td><td>Alter</td></tr>");
 
 for (i = 0;i<datensatz.length;i++){
     ausgabe = datensatz[i].antworte();
     document.write(ausgabe);
 }
 // Html Tabell Ende
 document.write("</table>");

Anwendung 4

< zurück   |   vor >
Nutzungsbedingungen | Datenschutz | Impressum
veröffentlicht unter CC BY 4.0 Autor: Roland Geyer