MyBatis ist ein hervorragendes Rahmen für Persistenzschicht, das einfache SQL -Abfragen, gespeicherte Verfahren und erweiterte Zuordnung unterstützt. MyBatis eliminiert manuelle Einstellungen fast aller JDBC -Code und -Parameter sowie die Suche in der Ergebnisse des Ergebnissatzes. MyBatis kann einfache XML oder Anmerkungen zur Konfiguration und ursprüngliche Zuordnung, Mapping -Schnittstellen und Javas Pojos (einfache alte Java -Objekte) in Datenbank in der Datenbank verwenden.
Im vorherigen Artikel werde ich Ihnen das Tutorial über MyBatis One-to-One-Mapping vorstellen.
Lassen Sie mich Ihnen von MyBatis viel zu vielen Kenntnissen erzählen. Die spezifischen Details sind wie folgt:
Es gibt viele viele zu viele Beispiele, wie die Beziehung zwischen dem Kurs und den Studenten. Ein Kurs kann mehrere Wahlstudenten haben, und ein Schüler kann auch mehrere Fächer nehmen. Die Beziehung zwischen Lehrern und Schülern: Ein Lehrer hat mehrere Schüler und ein Schüler hat mehrere Lehrer.
Nehmen Sie die Beziehung zwischen den Schülern und dem Kurs als Beispiel.
Wenn wir Datentabellen erstellen, haben wir zwei Lösungen:
Der erste Typ:
Speichern Sie beim Erstellen einer Schülerdatentabelle ein fremdes Schlüsselfeld für einen Kurs.
Speichern Sie beim Erstellen einer Kursdatentabelle das Feld eines ausländischen Schlüssels eines Schülers.
Dies hat jedoch einen großen Nachteil, das heißt, wenn ich die Studententabelle löschen möchte, gibt es ein fremdes Schlüsselfeld der Kurstabelle.
In ähnlicher Weise gibt es, wenn ich die Kurs Tabelle löschen möchte, ausländische Schlüsselfelder der Studententabelle. Oh, es ist nicht einfach, damit umzugehen.
Der zweite Typ:
Wir erstellen Schüler- und Kurstische und speichern ihre jeweiligen Felder und Aufzeichnungen in den beiden Tischen.
Eine weitere gemeinsame Tabelle Student_Course wird als Zwischentabelle verwendet, um ausländische Schlüssel für Schüler und Kurs zu speichern.
Dies ist für uns sehr bequem, die Word -Tabelle zu löschen, daher übernehmen wir diese Lösung.
Datenbankskripte
-Viele zu viele Zuordnungen-Datenbank DROP-Datenbank löschen, wenn myBatis existiert;-Datenbank erstellen Datenbank erstellen, wenn nicht existiert, myBatis Standard Zeichensatz Utf8;-Datenbank auswählen Verwenden Sie MyBatis. varchar (32), Einschränkung pk_sid Primärschlüssel (SID)); Tabellenkurs erstellen (CID INT (255), CNAME VARCHAR (32), Einschränkung PK_CID Primärschlüssel (CID)); table student_course (SID int (255), CID int (255), Einschränkung pk_sid_cid Primärschlüssel (SID, CID), Einschränkung fk_sid fremdschlüssel (SID) Referenzen Schüler (SID), Einschränkung fk_cid Fremdschlüssel (CID) Referenzen (CID). (SID, Sname) Werte (2, 'ha'); Einfügen in den Kurs (CID, CNAME) (1, 'Java'); in Kurs (CID, CNAME) (2, '. NET'); Einfügen in Student_Course (SID, CID) -Werte (1,1); in student_course (SID) Werte (1,2). (2,1); Einfügen in Student_Course (SID, CID) -Werte (2,2);
Erstellen Sie eine neue vielen2many.Course.java -Klasse
Paket ManyMany; Import Java.io.Serializable; Import Java.util.ArrayList; Import Java.util.List;/*** Kurs*@Author Administrator **/ @SuppressWarnings ("Seriell") öffentliche Klassenkurs implementiert serializable {private Integer cid; private string cname; {return cid;}public void setCid(Integer cid) {this.cid = cid;}public String getCname() {return cname;}public void setCname(String cname) {this.cname = cname;}public List<Student> getStudents() {return students;}public void setStudents(List<Student> students) {this.students = Schüler;}}Erstellen Sie eine neue vielen2many.student.java -Klasse
Paket viele2Many; Import Java.io.Serializable; Import Java.util.ArrayList; Import Java.util.List;/*** Schülerklasse*@Author Administrator **/ @SuppressWarnings ("Serial") Public Class Student Implements Serializable {privat Intiere; private sname; privat String Sname; getsid () {return sid;} public void setSID (Integer SID) {this.sid = sid;} public String GetName () {return sname;} public void setsname (String sname) {this.sname = sname;} öffentliche Liste <Kurs> listCours () {) {) {{) {{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{ua} cours; {this.Courses = Kurse;}}Erstellen Sie eine neue studentMapper.xml -Datei und eine Coursemapper.xml -Datei
<? Typ = "Many2Many.Student" id = "studentMap"> <id Property = "Sid" column = "Sid"/> <resulting Property = "sname" column = "sname"/> <result properation = "sname"/> </resentmap> <? 3.0 // en "" http://mybatis.org/dtd/mybatis-3-mapper.dtd "> <mapper namespace =" CourSeMameSpace "> <resultmap type =" Many2Many.Course "id =" Coursemap "> <ids Property =" cid "cold" column = "cid" cid "cid" cid "/<resulting column = "cname"/> <resultMap> <!-Abfragen Sie die Kurse, die Sie in "haha"-> <select id = "findAlbyname" -ParameterType = "String" resultMap = "CourSemap"> SELECT C.CNAME, C.CID von Student S, Kurs C, Student_course sc. sc. #{sname}; </select> </minkPer>Erstellen Sie eine neue StudentCoursedao.java -Klasse für Persistenzschichtklassen
Paket ManyMany; Import Java.util.iterator; Import Java.util.List; Einmanny.Student; @return* @throws Exception*/publiclist <Kurs> findAllbyname (String -Name) löst Ausnahme aus. e;} endlich {mybatisutil.closesqlSession ();}}@testpublic void testfindAllbyName () löst Ausnahme aus {StudentCoursedao dao = new studentCoursedao (); LIST <Kurs> Courses = Dao.findallbyname ("HAHA"); {System.out.println (cours.getCID ()+":"+cours.getCname ());}}}Laden Sie die Konfigurationsdatei in mybatis.cfg.xml -Datei
<!-Laden Sie die Zuordnungsdatei-> <Mapper Resource = "One2one/cardmapper.xml"/> <mapper ressourcen = "One2one/studentMapper.xml"/> <mapper ressourcen ressourcen = "Viele2Many/studentMapper.xml"/> <mapper ressourcen = "Many2Many/Coursemapper.xml"/> <mapper Resource = "Viele2Many/Coursemapper.xml"/> <mapper Resource = "Manymany/Coursemapper.xml"/> <mapper ressourcen Resource = "Viele2Many/Coursemapper.xml"/> <mappers>
Das obige ist das erste Tutorial über MyBatis Viele-zu-Viele-Karton-Mapping, das Ihnen vom Herausgeber vorgestellt wurde. Ich hoffe, es wird Ihnen hilfreich sein. Wenn Sie Fragen haben, hinterlassen Sie mir bitte eine Nachricht und der Editor wird Ihnen rechtzeitig antworten. Vielen Dank für Ihre Unterstützung auf der Wulin.com -Website!