Viele zu eins Mapping
Viele zu eins Assoziationen sind die häufigsten Assoziationsbeziehungen, bei denen ein Objekt mehrerer Objekte zugeordnet werden kann. Beispielsweise kann ein identisches Adressobjekt mit Objekten mehrerer Mitarbeiter verknüpft sein.
Definieren Sie die RDBMS -Tabelle:
Betrachten Sie eine Situation, in der Mitarbeiteraufzeichnungen in der Mitarbeitertabelle gespeichert werden müssen, die die folgende Struktur aufweist:
Tabelle Mitarbeiter erstellen (ID int nicht null auto_increment, First_name varchar (20) Standardnull, Last_name varchar (20) Standardnull, Gehalt int Standard Null, Adresse int nicht null, primärer Schlüssel (ID));
Darüber hinaus können viele Mitarbeiter die gleiche Adresse haben, sodass dieser Verein mit vielen Eins-zu-Eins-Assoziationen vorgestellt werden kann. Wir speichern die Informationen zur Adresse in einer separaten Tabelle mit der folgenden Struktur:
Tabellenadresse erstellen (ID int nicht null auto_increment, street_name varchar (40) Standardnull, City_Name varchar (40) Standardnull, state_name varchar (40) Standardnull, Zipcode varchar (10) Standardnull, Primärschlüssel (ID));
Erstellen Sie gleichzeitig RBDMS -Tabellen und lassen Sie sich auf die nächste Implementierung vorbereiten.
Definieren Sie die Pojo -Klasse:
Lassen Sie uns einen Mitarbeiter der Pojo -Klasse implementieren, mit dem Variablen des Objekts und seines Adresstyps mit der Mitarbeitertabelle geführt werden.
Import Java.util.*; Angestellte der öffentlichen Klasse {private int id; private String FirstName; private Zeichenfolge Lastname; privates Int -Gehalt; private Adressadresse; public Employee () {} public Employee (String fname, String lName, int -Gehalt, Adressadresse) {this.firstname = fname; this.lastName = lname; this.Salary = Gehalt; this.address = Adresse; } public int getid () {return id; } public void setId (int id) {this.id = id; } public String getFirstName () {return firstname; } public void setfirstname (String first_name) {this.firstname = first_name; } public String getLastName () {return LastName; } public void setLastName (String last_name) {this.lastName = last_name; } public int getSalary () {Rückgabegehalt; } public void setSalary (Int -Gehalt) {this.Salary = Gehalt; } öffentliche Adresse getAddress () {Rückgabeadresse; } public void setAddress (Adressadresse) {this.address = address; }}Wir müssen die entsprechende Adresstabelle definieren, damit das Adressobjekt eine andere Pojo -Klasse in der Adresstabelle speichern und abrufen kann.
Java.util importieren.*; öffentliche Klasse Adresse {private int id; private String Street; private Streichstadt; privater Stringstaat; private String Zipcode; öffentliche Adresse () {} öffentliche Adresse (String Street, String City, String State, String Zipcode) {this.street = street; this.city = Stadt; this.state = Status; this.zipcode = zipcode; } public int getid () {return id; } public void setId (int id) {this.id = id; } public String getStreet () {return street; } public void setstreet (String Street) {this.street = street; } public String getCity () {return city; } public void setCity (String City) {this.city = City; } public String getState () {Return State; } public void setState (String Status) {this.state = STAAT; } public String geteizipcode () {return zipcode; } public void detzipCode (String zipcode) {this.zipcode = zipcode; }} Definieren Sie die Hibernate -Mapping -Datei:
Entwickeln Sie unsere Zuordnungsdatei, in der der Winterschlaf anweist, wie Sie Klassenkarte in Datenbanktabellen definieren. <viele zu eins> Verarbeitungselemente werden verwendet, um Regeln zu definieren, um ein viel- und eins-zu-Eins-Verhältnis zwischen Mitarbeitern und Unternehmen anzusprechen.
<? Tabelle = "Mitarbeiter"> <meta Attribute = "Klasse-De-Scription"> Diese Klasse enthält das Detail der Mitarbeiter. </meta> <id name="id" type="int" column="id"> <generator/> </id> <property name="firstName" column="first_name" type="string"/> <property name="lastName" column="last_name" type="string"/> <property name="salary" column="salary" type="int"/> <many-to-one name="address" column="address" nicht-null = "true"/> </class> <class name = "address" table = "adress"> <meta satcriut = "class-Decription"> Diese Klasse enthält das Adressdetail. </meta> <id name = "id" type = "int" column = "id"> <generator/> </id> <Eigenschaft name = "street" column = "street_name" type = "string"/> <Eigenschaft name = "City" cadal = "city_name" type = "String"/> <Eigenschaft name = "state" column = "state_name" Typ = "String"/> </class> </hibernate-mapping>
Das Format <SclassName> .hbm.xml in der Zuordnungsdatei, die gespeichert werden sollte. Speichern Sie die Datei Employee.hbm.xml in der Zuordnungsdatei. Bereits mit den meisten Mapping -Details vertraut, aber schauen wir uns alle Elemente in der Mapping -Datei erneut an:
Ein zugeordnetes Dokument ist ein XML-Dokument mit <Hibernate-Mapping> als Stammelement, das jeder Klasse mit 2 <klassen> Elementen entspricht.
Mit dem <klasse> -Element wird eine Datenbanktabelle spezifische Zuordnung aus einer Java -Klasse definiert. Java -Klasse -Name gibt das Namensattribut des Klassenelements an und der Name der Tabellenattributdatenbank -Tabelle gibt an.
Das Element <Meta> ist ein optionales Element, mit dem eine Beschreibung der Klasse erstellt werden kann.
Das Element <D> Element ordnet das eindeutige ID -Attribut in der Klasse in die Primärschlüssel der Datenbanktabelle ab. Das Namensattribut des ID -Elements bezieht sich auf die Klasse des Attributs, und das Spaltenattribut bezieht sich auf die Spalten in der Datenbanktabelle. Das Typ -Attribut speichert den Hibernate -Mapping -Typ, der von Java in SQL -Datentyp konvertiert wird.
Der Primärschlüsselwert im Element <Gergenator> innerhalb des ID -Elements wird verwendet, um automatisch zu generieren. Legen Sie das Klassenattribut des generierten Elements fest, um den Hibernate die Algorithmen, ob es sich um Identität, Sequenz oder HILO handelt, nativ aufnehmen, um Primärschlüssel gemäß den Unterstützungsfunktionen der zugrunde liegenden Datenbank zu erstellen.
Das Element <Seigenschaft> wird verwendet, um Eigenschaften einer Java -Klasse in Spalten in einer Datenbanktabelle zuzuordnen. Das Namensattribut eines Elements bezieht sich auf die Klasse des Attributs, und das Spaltenattribut bezieht sich auf die Spalten in der Datenbanktabelle. Das Typ -Attribut speichert den Hibernate -Mapping -Typ, der von Java in SQL -Datentyp konvertiert wird.
<viele zu eins> Verarbeitungselement wird verwendet, um die Beziehung zwischen Mitarbeitern und Entität festzulegen, die sich ansprechen. Das Namensattribut wird auf eine in der übergeordnete Klasse definierte Variable eingestellt. In unserem Fall handelt es sich um die Adresse. Das Spaltenattribut wird für Spaltennamen im übergeordneten Mitarbeiter -Mitarbeitersatz verwendet.
Schließlich erstellen wir die main () -Methode der Anwendungsklasse, um die Anwendung auszuführen. Wir werden diese Anwendung verwenden, um einige Mitarbeiter zusammen mit ihrer Adresse zu speichern, um ihre Adresse aufzuzeichnen, und beantragen dann den CRUD -Betrieb in der Aufzeichnung.
import Java.util.*; import org.hibernate.hibernateException; import org.hibernate.session; import org.hibernate.transaction; import org.hibernate.sessionFactory; import org.hibernate.cfg.Configuration; öffentliche Klasse Managing Employeee {private statische Sitzungsfabrik; public static void main (string [] args) {try {factory = new configuration (). configure (). BuildSessionFactory (); } catch (throwable ex) {System.err.println ("SessionFactory -Objekt nicht erstellt." + ex); Neue ExecessIninitializerError (Ex) werfen; } ManagyeAmee me = new ManageAmployee (); / * Lassen Sie uns ein Adressobjekt haben */ Adresse Adresse = me.addaddress ("Kondapur", "Hyderabad", "AP", "532"); / * Fügen Sie Mitarbeiterdatensätze in der Datenbank hinzu */ Integer empID1 = me.addEmPl ("Manoj", "Kumar", 4000, Adresse); / * Fügen Sie in der Datenbank einen weiteren Mitarbeiterdatensatz hinzu */ Integer empid2 = me.addOplect ("Dilip", "Kumar", 3000, Adresse); / * Auflisten Sie alle Mitarbeiter auf */ me.listOplomee (); / * Aktualisieren Sie die Gehaltsunterlagen des Mitarbeiters */ me.updateOper (empid1, 5000); / * Einen Mitarbeiter aus der Datenbank löschen */ me.deleteEMple (empid2); / * Auflisten Sie alle Mitarbeiter auf */ me.listOmployees (); } / * Methode zum Hinzufügen eines Adressdatensatzes in der Datenbank * / öffentliche AdressadressAddress (String Street, String City, String Status, String Zipcode) {Session Session = Factory.OpenSession (); Transaktion TX = NULL; Integer addressID = null; Adresse Adresse = NULL; try {tx = session.beginTransaction (); Adresse = neue Adresse (Straße, Stadt, Bundesstaat, Zipcode); addressId = (Integer) Sitzung.Save (Adresse); tx.commit (); } catch (hibernateException e) {if (tx! = null) tx.rollback (); E. printstacktrace (); } endlich {Session.close (); } Rückgabeadresse; } / * Methode zum Hinzufügen eines Mitarbeiterdatensatzes in der Datenbank * / public Integer addPelePoPoPoPoPoToPoToPoTEME (String fname, String lName, int -Gehalt, Adressadresse) {session session = factory.openSession (); Transaktion TX = NULL; Integer EmployeeId = NULL; try {tx = session.beginTransaction (); Mitarbeiter Mitarbeiter Mitarbeiter = neuer Mitarbeiter (fname, lname, Gehalt, Adresse); EmployeEID = (Integer) Sitzung.Save (Mitarbeiter); tx.commit (); } catch (hibernateException e) {if (tx! = null) tx.rollback (); E. printstacktrace (); } endlich {Session.close (); } Return EmployeEID; } / * Methode zur Auflistung aller Mitarbeiterdetails * / public void ListOmPlumes () {Session Session = Factory.OpenSession (); Transaktion TX = NULL; try {tx = session.beginTransaction (); List Employees = Session.createquery ("From Employee"). List (); für (Iterator iterator = Mitarbeiter System.out.print ("Vorname:" + Mitarbeiter.getFirstname ()); System.out.print ("Nachname:" + Mitarbeiter.getLastName ()); System.out.println ("Gehalt:" + Mitarbeiter.getSalary ()); Adresse add = Mitarbeiter.GetAddress (); System.out.println ("Adresse"); System.out.println ("Street:" + add.getStreet ()); System.out.println ("Stadt:" + add.getCity ()); System.out.println ("Status:" + add.getState ()); System.out.println ("Zipcode:" + add.getZipcode ()); } tx.commit (); } catch (hibernateException e) {if (tx! = null) tx.rollback (); E. printstacktrace (); } endlich {Session.close (); }} / * Methode zur Aktualisierung des Gehalts für einen Mitarbeiter * / public void updatePoperee (Integer EmployeeId, Int -Gehalt) {Session Session = Factory.OpenSession (); Transaktion TX = NULL; try {tx = session.beginTransaction (); Arbeitnehmermitarbeiter Mitarbeiter = (Mitarbeiter) Sitzung.get (Mitarbeiter.Class, EmployeeId); Mitarbeiter.SetSalary (Gehalt); Sitzung.Update (Mitarbeiter); tx.commit (); } catch (hibernateException e) {if (tx! = null) tx.rollback (); E. printstacktrace (); } endlich {Session.close (); }} / * Methode zum Löschen eines Mitarbeiters aus den Datensätzen * / public void DeletePoepoMeee (Integer EmployeeID) {session session = factory.openSession (); Transaktion TX = NULL; try {tx = session.beginTransaction (); Arbeitnehmermitarbeiter Mitarbeiter = (Mitarbeiter) Sitzung.get (Mitarbeiter.Class, EmployeeId); Sitzung.Delete (Mitarbeiter); tx.commit (); } catch (hibernateException e) {if (tx! = null) tx.rollback (); E. printstacktrace (); } endlich {Session.close (); }}} Kompilieren und ausführen:
Hier sind die Schritte zum Kompilieren und Ausführen der obigen Anwendung. Stellen Sie sicher, dass dieser Pfad und der Klassenpfad vor dem Zusammenstellen und Ausführen entsprechend eingestellt sind.
Erhalten Sie die folgenden Ergebnisse auf dem Bildschirm und Datensätze werden sowohl im Mitarbeiter- als auch im Adresstabellen erstellt.
$ java verwaltete Menschenschaft
..... Verschiedene Protokollnachrichten werden hier angezeigt ......... Vorname: Manoj Nachname: Kumar Gehalt: 4000Address Street: Kondapur Stadt: Hyderabad Staat: AP Zipcode: 532First Name: Dilip Nachname: Kumar Gehalt: 3000Address Street: Kondapur Stadt: Hyderabad State: AP Zipcode: 532first Name: MANOOJ HALTEL LAUTEN: Straße: Kondapur Stadt: Hyderabad Staat: AP Zipcode: 532
Wenn Sie den Mitarbeiter- und Adresstabelle überprüfen, sollten Sie sie aufzeichnen:
MySQL> SELECT * vom Mitarbeiter;
+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------/ ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
MySQL> aus der Adresse ausgewählt;
+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------/ ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Eins-zu-Viele-Kartierung
Eine Eins-zu-Viele-Kartierung kann mit einer Reihe von Java-Sammlungen implementiert werden, die keine doppelten Elemente enthalten. Wir haben gesehen, wie man Karten in Hibernate festlegt. Wenn Sie also von Set-Mappings erfahren haben, können alle Einstellungen für Eins-zu-Viele-Mappings verwendet werden.
Der Satz wird dem Element <Set> in der Kartentabelle zugeordnet und in java.util.hashset initialisiert. Sie können festgelegte Sammlungen in einer Klasse verwenden, wobei ein Element in der Sammlung, das keine Doppelarbeit erfordert, erforderlich ist.
Wir verwenden immer noch die im obigen Beispiel definierten RDBMS -Tabellen- und Pojo -Klassen.
Definieren Sie die Hibernate -Mapping -Datei:
Lassen Sie uns den Winterschlaf anweisen, wie Sie eine Klassen definieren, die der Zuordnungsdatei einer Datenbanktabelle zugeordnet ist.
<? Tabelle = "Mitarbeiter"> <meta Attribute = "Klasse-De-Scription"> Diese Klasse enthält das Detail der Mitarbeiter. </meta> <id name="id" type="int" column="id"> <generator/> </id> <set name="certificates" cascade="all"> <key column="employee_id"/> <one-to-many/> </set> <property name="firstName" column="first_name" type="string"/> <property name="lastName" column="last_name" type = "String"/> <Eigenschaft name = "Gehalt" column = "salary" type = "int"/> </class> <class name = "zertifikat" table = "zertifikat"> <meta attribute = "class-description"> Diese Klasse enthält die Zertifikatsdatensätze. </meta> <id name = "id" type = "int" column = "id"> <generator/> </id> <Eigenschaft name = "name" conal
Das Format <SclassName> .hbm.xml in der Zuordnungsdatei, die gespeichert werden sollte. Wir speichern die Datei Mitarbeiter.hbm.xml in der Zuordnungsdatei. Sie sind bereits mit den meisten Mapping -Details vertraut, aber schauen wir uns alle Elemente in der Mapping -Datei erneut an:
Ein zugeordnetes Dokument ist ein XML-Dokument mit <Hibernate-Mapping> als Stammelement, das jeder Klasse mit 2 <klassen> Elementen entspricht.
Mit dem <klasse> -Element wird eine Datenbanktabelle spezifische Zuordnung aus einer Java -Klasse definiert. Java -Klasse -Name gibt das Namensattribut des Klassenelements an und der Name der Tabellenattributdatenbank -Tabelle gibt an.
Das Element <Meta> ist ein optionales Element, mit dem eine Beschreibung der Klasse erstellt werden kann.
Das Element <D> Element ordnet das eindeutige ID -Attribut in der Klasse in die Primärschlüssel der Datenbanktabelle ab. Das Namensattribut des ID -Elements bezieht sich auf die Klasse des Attributs, und das Spaltenattribut bezieht sich auf die Spalten in der Datenbanktabelle. Das Typ -Attribut speichert den Hibernate -Mapping -Typ, der von Java in SQL -Datentyp konvertiert wird.
Das Element <Gergenator> innerhalb des ID -Elements wird verwendet, um den Primärschlüsselwert automatisch zu generieren. Legen Sie das Klassenattribut des generierten Elements fest, um die Hibernate -Identität, Sequenz- oder HILO -Algorithmen nativ zu lassen, um Primärschlüssel gemäß den Unterstützungsfunktionen der zugrunde liegenden Datenbank zu erstellen.
Das Element <Seigenschaft> wird verwendet, um Eigenschaften einer Java -Klasse in Spalten in einer Datenbanktabelle zuzuordnen. Das Namensattribut eines Elements bezieht sich auf die Klasse des Attributs, und das Spaltenattribut bezieht sich auf die Spalten in der Datenbanktabelle. Das Typ -Attribut speichert den Hibernate -Mapping -Typ, der von Java in SQL -Datentyp konvertiert wird.
Das Element <Set> legt die Beziehung zwischen dem Zertifikat und der Mitarbeiterklasse fest. Wir verwenden das Element <Set> im Cascade -Attribut, um Hibernate zu sagen, dass er das Zertifikatobjekt speichern und auch das Mitarbeiterobjekt ist. Das Namensattribut wird auf die in der übergeordnete Klasse definierte Variablen festgelegt. In unserem Beispiel befindet sich das Zertifikat. Für jeden Satz von Variablen müssen wir einen separaten Satz von Elementen in der Zuordnungsdatei definieren.
Das Element <Key> ist das übergeordnete Objekt, das einen Fremdschlüssel enthält, dh der Spalte in der Zertifikatentabelle. Tabelle Mitarbeiter.
Das Element <Eins-zu-Many> zeigt an, dass ein Mitarbeiterobjekt viele Zertifikate umfasst.
Erstellen Sie eine Anwendungsklasse:
Schließlich erstellen wir die main () -Methode der Anwendungsklasse, um die Anwendung auszuführen. Wir werden diese App verwenden, um einige Mitarbeiter zusammen mit dem Datensatzzertifikat zu speichern, und dann werden wir den CRUD -Betriebsdatensatz anwenden.
import Java.util.*; import org.hibernate.hibernateException; import org.hibernate.session; import org.hibernate.transaction; import org.hibernate.sessionFactory; import org.hibernate.cfg.Configuration; öffentliche Klasse Managing Employeee {private statische Sitzungsfabrik; public static void main (string [] args) {try {factory = new configuration (). configure (). BuildSessionFactory (); } catch (throwable ex) {System.err.println ("SessionFactory -Objekt nicht erstellt." + ex); Neue ExecessIninitializerError (Ex) werfen; } ManagyeAmee me = new ManageAmployee (); / * Lassen Sie uns eine Reihe von Zertifikaten für den ersten Mitarbeiter haben */ Hashset set1 = new Hashset (); set1.add (neues Zertifikat ("MCA")); set1.add (neues Zertifikat ("MBA")); set1.add (neues Zertifikat ("MBA")); set1.add (neues Zertifikat ("PMP")); / * Fügen Sie Mitarbeiterdatensätze in der Datenbank hinzu */ Integer empID1 = me.addEmPl ("Manoj", "Kumar", 4000, set1); / * Ein weiterer Satz von Zertifikaten für den zweiten Mitarbeiter */ Hashset set2 = new Hashset (); set2.add (neues Zertifikat ("BCA")); set2.add (neues Zertifikat ("BA")); / * Fügen Sie in der Datenbank einen weiteren Mitarbeiterdatensatz hinzu */ Integer empid2 = me.addEmPl ("Dilip", "Kumar", 3000, set2); / * Auflisten Sie alle Mitarbeiter auf */ me.listOplomee (); / * Aktualisieren Sie die Gehaltsunterlagen des Mitarbeiters */ me.updateOper (empid1, 5000); / * Einen Mitarbeiter aus der Datenbank löschen */ me.deleteEMple (empid2); / * Auflisten Sie alle Mitarbeiter auf */ me.listOplomee (); } / * Methode zum Hinzufügen eines Mitarbeiterdatensatzes in der Datenbank * / public Integer addPelyee (String fname, String lName, int -Gehalt, Set cert) {Session Session = factory.openSession (); Transaktion TX = NULL; Integer EmployeeId = NULL; try {tx = session.beginTransaction (); Mitarbeitermitarbeiter Mitarbeiter = neuer Mitarbeiter (fname, lname, Gehalt); Mitarbeiter.SetCertificates (cert); EmployeEID = (Integer) Sitzung.Save (Mitarbeiter); tx.commit (); } catch (hibernateException e) {if (tx! = null) tx.rollback (); E. printstacktrace (); } endlich {Session.close (); } Return EmployeEID; } / * Methode zur Auflistung aller Mitarbeiterdetails * / public void ListOmPlumes () {Session Session = Factory.OpenSession (); Transaktion TX = NULL; try {tx = session.beginTransaction (); List Employees = Session.createquery ("From Employee"). List (); für (Iterator iterator1 = Mitarbeiter System.out.print ("Vorname:" + Mitarbeiter.getFirstname ()); System.out.print ("Nachname:" + Mitarbeiter.getLastName ()); System.out.println ("Gehalt:" + Mitarbeiter.getSalary ()); Setzen Sie Zertifikate = Mitarbeiter.getCertificates (); für (iterator iterator2 = Certificate.Iderator (); iterator2.hasnext ();) {Zertifikat certname = (Zertifikat) iterator2.Next (); System.out.println ("Zertifikat:" + certname.getName ()); }} tx.commit (); } catch (hibernateException e) {if (tx! = null) tx.rollback (); E. printstacktrace (); } endlich {Session.close (); }} / * Methode zur Aktualisierung des Gehalts für einen Mitarbeiter * / public void updatePoperee (Integer EmployeeId, Int -Gehalt) {Session Session = Factory.OpenSession (); Transaktion TX = NULL; try {tx = session.beginTransaction (); Arbeitnehmermitarbeiter Mitarbeiter = (Mitarbeiter) Sitzung.get (Mitarbeiter.Class, EmployeeId); Mitarbeiter.SetSalary (Gehalt); Sitzung.Update (Mitarbeiter); tx.commit (); } catch (hibernateException e) {if (tx! = null) tx.rollback (); E. printstacktrace (); } endlich {Session.close (); }} / * Methode zum Löschen eines Mitarbeiters aus den Datensätzen * / public void DeletePoepoMeee (Integer EmployeeID) {session session = factory.openSession (); Transaktion TX = NULL; try {tx = session.beginTransaction (); Arbeitnehmermitarbeiter Mitarbeiter = (Mitarbeiter) Sitzung.get (Mitarbeiter.Class, EmployeeId); Sitzung.Delete (Mitarbeiter); tx.commit (); } catch (hibernateException e) {if (tx! = null) tx.rollback (); E. printstacktrace (); } endlich {Session.close (); }}} Kompilieren und ausführen:
$ java verwaltete Menschenschaft
..... Verschiedene Protokollnachrichten werden hier angezeigt ......... Vorname: Manoj Nachname: Kumar Gehalt: 4000Certificat: mbactificate: pmpCertificate: McAfirst Name: Dilip Nachname: Kumar Gehalt: 3000Certificate: Bcactificate: Bafirst Name: Manoj Lastname: Kumar -Lastname: 5000Certificate: mbactificate: mbactificate: kumar kumar
Wenn Sie den Mitarbeiter- und Zertifikatformular überprüfen, sollten Sie es aufzeichnen:
MySQL> SELECT * vom Mitarbeiter;
+----------------------------+----------+| id | First_Name | last_name | Gehalt |+--------------------------------+------------+----------+| 1 | Manoj | Kumar | 5000 |+--------------------------------+----------+1 Zeile in Set (0,00 Sek.)
MySQL> aus Zertifikat auswählen;
+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------/ ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------