Heute habe ich gelernt, wie man die Datenbank über Hibernate hinzufügt, löscht, modifiziert und überprüft. Lassen Sie mich es kurz vorstellen:
Erstellen Sie zuerst eine Schülerklasse:
Paket com.hiberNate.model; import Javax.Persistence.Column; Import Javax.Persistence.Entity; Import Javax.Persistence.generatedValue; birthPlace;@Id @GeneratedValue @Column(name = "_id") public int getId() {return id;}public void setId(int id) {this.id = id;}@Column(name = "_name") public String getName() {return name;}public void setName(String name) {this.name = name;}@Column(name = "_age") public int getage () {return ay;} public void setage (int ay) {this.age = älter;}@column (name = "_birtplace") public String getBirTHace () {return birthtplace;} public void setBirthplace (String -Geburtsort) {this.birthplace Erstellen Sie dann einen Teachertest vom Typ JUNIT -Testfall:
Sprechen wir zuerst über die Session.save () -Methode, dh hinzufügen:
Paket com.hiberNate.model; import org.hibernate.Query; import org.hibernate.Session; import org.hibernate statische Sitzungfaktory sf = null; @BeForeClass public static void beforeclass () {try {sf = new AnnotationConfiguration (). configure () buildSessionFactory (); // Es ist am besten, die Ausnahme zu erhalten, da es einen Fehler gibt, der manchmal erscheint und manchmal scheinbar}}} {{e. {E.Printstacktrac (). void testsave () {// Erhöhen Sie Lehrer t = neuer Lehrer (); T.Setage (23); T.SetName ("Moluo"); AfterCass () {sf.close ();}}Helle Ergebnisse:
Sprechen wir über die Sitzung.Delete () -Methode, dh löschen:
@Test public void testDelete () {// Lehrer t = neuer Lehrer (); T.SetId (2); Sitzung Session = Sf.getCurrentSession (); Sitzung.BeginTransaction (); Sitzung.Delete (t);Helle Ergebnisse:
Gehen Sie dann zu Session.get (), das heißt: Überprüfen Sie:
@Test public void testget () {// Session Session = Sf.getCurrentSession () erhalten; Sitzung.BeginTransaction (); Lehrer t = (Lehrer) Sitzung.get (Lehrer.Class, 1); System.out.println ("Name:"+t.getName ()); Session.Gettransaction (). commesent (); }Helle Ergebnisse:
Hibernate: Wählen Sie Lehrer0 _._ id as column1_1_0_, lehrer0 _._ Alter as column2_1_0_, lehrer0 _._ birthplace as column3_1_0_, lehrer0 _._ name as column4_0_ Name ist: Moluo
Nehmen wir eine andere Abfragemethode an: Sitzung.load ():
@Test public void testload () {// laden Sitzung Session = sf.getCurrentSession (); Sitzung.BeginTransaction (); Lehrer t = (Lehrer) Sitzung.load (Lehrer.Class, 1); System.out.println ("Name:"+t.getName ()); Session.Gettransaction (). commesent (); }Helle Ergebnisse:
Hibernate: Wählen Sie Lehrer0 _._ id as column1_1_0_, lehrer0 _._ Alter as column2_1_0_, lehrer0 _._ birthplace as column3_1_0_, lehrer0 _._ name as column4_0_ Name ist: Moluo
Hier erläutern wir den Unterschied zwischen diesen beiden Abfragen: Erstens sind die zurückgegebenen Informationen, wenn das zu Abfrage -Objekt nicht vorhanden ist, unterschiedlich. GET -Methode kehrt zurück: java.lang.nullpointerexception
Die Lastmethode kehrt zurück: org.hiNNate.ObjectNotFoundException: NorowwiththegivenidentiFierexisten
Zweitens gibt Last ein Proxy -Objekt zurück, und SQL -Anweisungen werden bei der tatsächlich Verwendung ausgestellt. Holen Sie sich außerdem unverzüglich ladet Daten direkt aus der Datenbank.
Sprechen wir schließlich über die am häufigsten verwendeten Aktualisierungsmethoden und aktualisieren Sie sie über HQL -Anweisungen:
@Test public void testupdate () {// Aktualisierung von Sitzungen Session = sf.getCurrentSession (); Sitzung.BeginTransaction (); String url = "Aktualisieren Sie Lehrer t Setzen Sie t.birthplace = 'anhui' wobei id = 1"; // Beachten Sie, dass der Lehrer hier der Objektname sein muss, nicht der Tabellenname, t ist der Alias der Objektabfrage q = Session.createquery (URL); // Das hier importierte Paket lautet: import org.hiNNate.Query; q.executeUpdate (); Session.Gettransaction (). commesent (); }Helle Ergebnisse:
Durch das Update wurde Moros Heimatstadt von Huangshan nach Anhui aktualisiert ...
Tatsächlich gibt es die Update -Methode von Session.update (), aber diese Aktualisierungsmethode ist nur diese Aktualisierungsmethode. Wenn Sie jeweils nur einen Teil der Spalten aktualisieren, aktualisiert diese Aktualisierungsmethode alle nicht sehr effizienten Spalten, sodass nicht empfohlen wird, sie zu verwenden. Natürlich gibt es auch Möglichkeiten, sie auszugleichen. Wenn Sie beispielsweise XML verwenden, können Sie update = "false" in der Eigenschafts -Tag einer Spalte festlegen, dass Sie nicht in der Konfigurationsdatei aktualisiert werden möchten. Zusätzlich können Sie dynamische Updates nach der Klasse der Konfigurationsdatei festlegen: Dynamic-update = "true"; Wenn Sie Annotation verwenden, können Sie natürlich @Column festlegen (update = "false"); Tatsächlich sind diese nicht flexibel, und die Verwendung von HQL ist der beste, daher wird hier nur der HQL -Update -Code veröffentlicht.
Zusammenfassen
Das obige ist der gesamte Inhalt dieses Artikels über die Analyse des Beispiels von Hibernate, um Operationen durch das Hinzufügen, Löschen, Ändern und Durchsuchen von Operationen durch die Sitzung hinzuzufügen. Ich hoffe, es wird für alle hilfreich sein. Interessierte Freunde können sich auf diese Website beziehen:
Erfahren Sie schnell etwas über Sitzung in Hibernate
Hibernate Attributebene Annotation Instance Code
Hibernate verwendet HBm.xml, um die Analyse der Mapping -Beziehung zu konfigurieren
Wenn es Mängel gibt, hinterlassen Sie bitte eine Nachricht, um darauf hinzuweisen. Vielen Dank an Freunde für Ihre Unterstützung für diese Seite!