Beim Erlernen des Winterschlafs wurde der Herausgeber verschiedenen Zuordnungen ausgesetzt. Wie funktioniert die Zuordnung in MyBatis? In diesem heutigen Blog-Beitrag wird der Redakteur hauptsächlich kurz die erweiterte Mapping in MyBatis vorstellen, einschließlich Eins-zu-Eins-Eins-zu-Many und viel zu viel. Ich hoffe, dass immer mehr Freunde in Not hilfreich sein werden. Der Editor stellt hauptsächlich das Bestellproduktdatenmodell, ein Eins-zu-Eins-Abfrage, eine Eins-zu-Viele-Abfrage und viele zu viele Abfragen vor.
1. Produktdatenmodell bestellen
1. Das Skript zur Datenbankausführung lautet wie folgt:
<span style = "Schriftfamilie: Comic sans ms; Schriftgröße: 18px;"> Tabellenelemente erstellen (ID int nicht null auto_increment, its Primärschlüssel (ID)) Standard charSet = utf8; / *Tabellenstruktur für Tabelle `orderDetail` */ erstellen table orderDetail (id int nicht null auto_increment, orders_id int nicht null comment 'order id', itsels_id int nicht null comment 'product id', itsels_num int standardnull null comment 'product kauf quantität', id), key` fk_orderDetail_1` (`ordes orders), ordnungen`), key `fk_ordetail_1` (` orders orders orders `Fk_orderDetail_2` (` items_id`), Einschränkung `fk_orderDetail_1` Fremdstast Charset = utf8; /*Table structure for table `orders` */ CREATE TABLE orders ( id INT NOT NULL AUTO_INCREMENT, user_id INT NOT NULL COMMENT 'Order id', number VARCHAR(30) NOT NULL COMMENT 'Order number', createtime DATETIME NOT NULL COMMENT 'Create order time', note VARCHAR(100) DEFAULT NULL COMMENT 'Note', PRIMARY KEY (`id`), KEY `FK_orders_1` (`user_id`), Einschränkung `fk_orders_id` Fremdschlüssel (` user_id`) referenzen `t_user` (` id`) Auf Löschen keine Aktion auf Aktualisierung keine Aktion) Standard -charSet = utf8; / *Tabellenstruktur für Tabelle `T_USER` */ CREATE TABLE T_USER (ID int nicht null auto_increment, Benutzername varchar (32) Nicht Null -Kommentar 'Benutzername', Geburtstagsdatum Standard Null Kommentar 'Geburtstag' Geburtstag ', Sex -Char (1) Standardnull -Kommentar' Geschlecht ', Adresse Varchar (256) Standard -Null -Null -Kommentar', Primärtaste ', Primärtaste', primär 'adress' adress 'adresse' </span>
Testdatencode
<span style = "Schriftfamilie: Comic sans ms; Schriftgröße: 18px;">/ *Daten für die Tabelle "items" */ in Elemente (itemsname, detail, detail, pic, createtime) Werte ('Desktop', 3000.0, 'dieser Computer von großer Qualität! ('Notebook', 6000.0, 'Notebook', gute Leistung, gute Qualität! ', Null,' 2015-07-08 13:22:57 '), (' Backpack ', 200.0, Rucksack mit hoher Kapazität und gute Qualität!', Null, 2015-07-010 13:25:02 '); / *Daten für die Tabelle `orderDetail` */ in" orderDetail` (`ordners_id`,` powers_id`, `items_num`) (1,1,1), (1,2,3), (2,3,4), (3,2,3); / *Daten für die Tabelle "Bestellungen" */ in "ordnungen" ("user_id", "number", "createtime", "note") Werte (1, "1000010", "2015-06-04 13: 22: 35", Null), (1, "1000011", 2015-07-08 13: 22: 41: (2,'1000012','2015-07-17 14:13:23',NULL), (3,'1000012','2015-07-16 18:13:23',NULL), (4,'1000012','2015-07-15 19:13:23',NULL), (5,'1000012','2015-07-14 17:13:23',NULL), (6, '1000012', '2015-07-13 16: 13: 23', Null); / *Daten für die Tabelle `user` */ in" t_user "(" username "," birthday`, "sex", "adressierte") Werte ("Wang Wu", null, "2", null), ("Zhang San", "2014-07-10", "1", " Xiaoming ', Null,' 1 ',' Zhengzhou, Henan '), (' Chen Xiaoming ', Null,' 1 ',' Zhengzhou, Henan '), (' Zhang sanfeng ', null,' 1 ',' Zhenghou, Henan '), (' Zang Sanfen ', Null', Null ', Null', Null ', Null', Null ',' 1 ',' ('Chen Xiaoming', Null, '1', 'Zhengzhou, Henan'), ('Wang Wu', null, null, null), ('xiao a', '2015-06-27 C ',' 2015-06-27 ',' 1 ',' Peking '), (' Xiao D ',' 2015-06-27 ',' 2 ',' Peking '); </span>2. Ideen für Datenmodellanalyse
(1). In jeder Tabelle aufgezeichnete Dateninhalte: Machen Sie sich mit dem in jeder Tabelle in Modulen aufgezeichneten Inhalten vertraut, was dem Prozess der Lernsystemanforderungen (Funktionen) entspricht;
(2). Wichtige Feldeinstellungen für jede Tabelle: nicht leere Felder, Fremdschlüsselfelder;
(3). Die Beziehung zwischen Tabellen und Tabellen auf Datenbankebene: Fremdschlüsselbeziehung;
(4). Geschäftsbeziehung zwischen Tabellen: Bei der Analyse der Geschäftsbeziehung zwischen Tabellen muss sie auf einer bestimmten geschäftlichen Bedeutung für die Analyse beruhen.
3. Analyse von Datenbankideen für Bestellproduktmodelle, wie in der folgenden Abbildung gezeigt:
2. Eins-zu-Eins-Abfrage
2.1. Anforderungen: Informationen zum Abfragen von Auftrag und assoziieren Sie Benutzerinformationen
2.2. resulttype Implementierung
2.2.1 SQL Anweisung
Bestimmen Sie die Haupttabelle der Abfrage: Die Bestellentabelle ermitteln Sie die Assoziationstabelle der Abfrage, die Benutzertabelle, der Code lautet wie folgt:
<span style = "Schriftfamilie: Comic sans ms; Schriftgröße: 18px;"> Wählen
2.2.2 Erstellen Sie eine Entität Entität
Die Benutzerentität user.java ist wie folgt:
<span style = "Schriftfamilie: Comic sans ms; Schriftgröße: 18px;"> Paket com.mybatis.Entity; import Java.util.date; importieren java.util.list; / ** * @className: Benutzer * @Description: Todo (Benutzerentität) * @Author Ahvari */ Public Class User {private Integer id; // Nennen Sie private String -Benutzername; // Gender Private String Sex; // Adresse private Zeichenfolge Adresse; // Geburtstag Privatdatum Geburtstag; // Benutzerorientierte Bestellungen private Liste <bestellungen> Bestellungen; // Getter und Setter ......} </span>Bestellentitätsbestellungen.java
<span style = "Schriftfamilie: Comic sans ms; Schriftgröße: 18px;"> Paket com.mybatis.Entity; import Java.util.date; importieren java.util.list; / *** @className: Bestellungen* @Description: Todo (Bestellentität)* @Author ahvari*/ public class Bestellungen {/ ** Primärschlüsselbestell -ID*/ private Integer ID; / ** Benutzer -ID*/ private Integer userId; / ** Bestellnummer*/ private Zeichenfolgennummer; / ** Bestellzeit*/ Private Datum Createtime; / ** Hinweis*/ private Zeichenfolge Hinweis; // Benutzerinformationen privater Benutzer Benutzer; // Details bestellen private Liste <orderDetail> orderDetails; // Getter und Setter ......} </span>Produkteinheit: powers.java
<span style = "Schriftfamilie: Comic sans ms; Schriftgröße: 18px;"> Paket com.mybatis.Entity; import Java.util.date; / *** @className: items* @Description: Todo (Produktentitätsklasse)* @Author Ding Guohua*/ public Class Elemente {/ ** Produkttabelle Primärschlüssel -ID*/ private Integer ID; / ** Produktname*/ private String itemsname; / ** Produktpreis*/ privater Schwimmerpreis; / ** Produktbeschreibung*/ privates Zeichenfolge Detail; / ** Produktbild*/ privates Zeichenfolge Bild; / ** Produktionsdatum*/ Private Datum Createtime; // Getter und Setter ......} </span>Bestelldetail Entität orderDetail.java
<span style = "Schriftfamilie: Comic sans ms; Schriftgröße: 18px;"> Paket com.mybatis.Entity; / *** @className: orderDetail* @Description: Todo (Bestelldetails Entity)* @Author Ding Guohua*/ public class orderDetail {/ ** main, Detaillistenliste*/ private Integer ID; / ** id*/ private Integer ordnungssid; / ** Produkt -ID*/ private Integer itemsis; / ** Produktkaufmenge*/ private Ganzzahl po. // Produktinformationen entsprechen den Details private Elemente; // Getter und Setter ......} </span>Erstellen Sie eine Wrapper -Klasse, um alle Abfrageinformationen auf diese Klasse zuzuordnen.
<span style = "Schriftfamilie: Comic sans ms; Schriftgröße: 18px;">/ ** * @className: ordigScustom * @Description: Todo (die erweiterte Klasse von Bestellungen, die Bestellungen und Benutzeranfragen ermöglichen, diese Klasse zu erben. Die Attribute des Benutzers Private String Benutzername; privater String Sex; private String -Adresse; // Getter und Setter ......} </span>
2.2.3 Erstellen Sie ordnungsccustommapper.java, der Code ist wie folgt:
<span style = "Schriftfamilie: Comic sans ms; Schriftgröße: 18px;"> Paket com.mybatis.mapper; importieren java.util.list; import com.mybatis.entity.orderscustom; / *** @className: ordnersMapperCustom* @Description: todo (ordnersmapperCustom mapper)* @Author Ding Guohua*/ öffentliche Schnittstelle ordnungsscustommapper {/ ** Query -Bestellungen, Associate Query -Benutzerinformationen*/ öffentliche Liste <BestellungenCustom> FindOrderSuSerSuSer (); } </span>2.2.4 Erstellen ordnungsscustommapper.xml ist der entsprechende Schnittstellenname. Beim Laden der Konfigurationsdatei über die Mapper -Schnittstelle lautet der Code wie folgt:
<span style = "Schriftfamilie: Comic sans ms; Schriftgröße: 18px;"> <xml Version = "1.0" coding = "utf-8"?> <! docType mapper public "-// mybatis.org//dtd mapper 3.0 // en" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> <!-Namespace-Namespace, die Funktion besteht darin, die Verwaltung von SQL zu klassifizieren. namespace = "com.mybatis.mapper.Orderscustommapper"> <!-Abfragebehörungen, Associate Abfrage-Benutzerinformationen-> <select id = "findOrtersuser" resultType = "com.mybatis.Entity.Orderscustom"> SELECT T1. t1.user_id = t2.id </select> </minkPer> </span>
2.3 resultMap Implementierung
2.3.1 SQL Anweisung wie oben
2.3.2 resultMap Mapping -Ideen:
Verwenden Sie Ergebnismap, um die Auftragsinformationen im Abfrageergebnis dem Objekt des Bestells zuzuordnen, das Benutzerattribut in der Klasse der Bestellungen hinzuzufügen und die zugehörigen Abfragebenutzerinformationen dem Benutzerattribut im Objekt des Bestells zuordnen (es wurde in der obigen Bestelleinheit hinzugefügt).
2.3.3 ordnerscustommapper.xml
1. Definieren Sie Ergebnismap, der Code ist wie folgt:
<span style="font-family:Comic Sans MS;font-size:18px;"><!-- Define the resultMap of the query order associated user, map the entire query result to com.mybatis.entity.Orders--> <resultMap type="com.mybatis.entity.Orders" id="OrdersUserResultMap"> <!-- Configure the mapping order information--> <!-- id: Die eindeutige Kennung in der Spalte Abfrage, die eindeutige Kennung in den Auftragsinformationen. Wenn mehrere Spalten eine eindeutige Kennung bilden (z. B.: Die Wörterbuchtabelle im allgemeinen Datenbankdesign verwendet einen gemeinsamen Primärschlüssel), müssen mehrere IDs konfiguriert werden column = "ordners_id" property = "ordnerssid"/>, ähnlich der Konfiguration der Hibernate -Entitätszuordnungsdatei). -> <id column = "id" Property = "id"/> <result column = "user_id" property = "userId"/> <resultal column = "number" property = "number"/> <resultal column = "createtime" property = "createtime"/> <resultal column = "note" properation = "note"/> <resulting column = "note". Assoziation: Informationen, die zur Zuordnung der zugeordneten Abfrage Single-Object-Eigenschaft verwendet werden: Die Benutzerinformationen der zugehörigen Abfrage in Bestellungen-> <Assoziation Eigenschaft = "Benutzer" javatype = "com.mybatis.Entity.User"> <! <result column = "userername" property = "userername"/> <resultal column = "sex" property = "sex"/> <result
2. Definition der Anweisung, der Code lautet wie folgt:
<span style = "Schriftfamilie: Comic sans ms; Schriftgröße: 18px;"> <!-Abfragebehörungen, Associate Query-Benutzerinformationen, verwenden Sie Ergebnismap zum Implementieren-> <select id = "findEdersUrresultmap" resultmap = "ordnersuSresultMap"> SELECT T2, T2, T2, T2, T2, T2, T2, T2, T2.SEX, T2. t1.user_id = t2.id </select> </span>
3. Fügen Sie der ordercustommapper.java -Schnittstelle die folgende Methode hinzu:
<span style = "Schriftfamilie: Comic sans ms; Schriftgröße: 18px;">/ ** Abfrage Association Association Benutzerinformationen, verwenden Sie ReslutMap, um*/ öffentliche Liste <ordnungen> findOrtsuserresultMap () zu implementieren; </span>
4. Der Jungit -Test der Implementierung von Ergebnistypen und Ergebnismaps ist der Code wie folgt:
<span style = "Schriftfamilie: Comic sans ms; Schriftgröße: 18px;"> Paket com.mybatis.test; importieren java.io.inputstream; importieren java.util.list; import org.apache.ibatis.io.resources; import org.apache.ibatis.session.sqlSessionFactory; import org.apache.ibatis.session.sqlSessionFactoryBuilder; import org.junit.before; import org.junit.test; import com.mybatis.entity.orders; import com.mybatis.entity.orderscustom; import com.mybatis.mapper.orderscustommapper; public class ordigsCustommapperTest {private sqlSessionFactory SQLSessionFactory; // Diese Methode soll @Before public void setup () ausführen. InputStream InputStream = Ressourcen.getResourceAsStream (Ressource); // SQLSessionFcatory SQLSessionFactory = new SQLSessionFactoryBuilder (). Build (InputStream); } // die Reihenfolge abfragen, die Benutzerinformationen der Abfrageberechnung verbinden und den test implementieren @test public void testorderSuSer () {SQLSession SQLSession = SQLSessionFactory.OpenSession (); // Erstellen Sie den Proxy -Objekt ordnungsscustommapper oc = sqlSession.getMapper (ordnersCustommapper.class); // MAPPER -Methodenliste <ordigsCustom> list = oc.findorderSuSer () aufrufen; System.out.println (Liste); sqlSession.close (); } // Abfragen Sie die Reihenfolge, verknüpfen Sie die Benutzerinformationen der Abfrage und Tests, die mit resultMap @test public void testorderSuserresultmap () {SQLSession SQLSession = SQLSessionFactory.OpenSession () implementiert sind. // Proxy -Objekt ordnungsscustommapper oc = sqlSession.getMapper (ordnersCustommapper.class); // MAPPER -Methodenliste <ordnungen> list = oc.findorderSuserresultmap () aufrufen; System.out.println (Liste); sqlSession.close (); }} </span>5. Ergebnistyp und resultmap implementieren Sie Eins-zu-Eins-Abfragezusammenfassung
Implementieren Sie eins-zu-Eins-Anfragen:
A.ResultType: Es ist relativ einfach, mit dem Ergebnistyp zu implementieren. Wenn der Name der Abfragespalten nicht im Pojo enthalten ist, müssen Sie die entsprechenden Attribute des Spaltennamens hinzufügen, um die Zuordnung zu vervollständigen.
B. Wenn es keine besonderen Anforderungen an Abfrageergebnisse gibt, wird empfohlen, das Ergebnistyp zu verwenden.
C.Resultmap: Der Ergebnismap muss separat definiert werden, was etwas problematisch ist. Wenn es spezielle Anforderungen an Abfrageergebnisse gibt, kann die Verwendung von Ergebnismap die Attribute des zugehörigen Abfrage -Mapping -Pojo abschließen.
D.Resultmap kann faule Laden implementieren, das Ergebnistyp kann keine faulen Laden implementieren.
3. Ein-zu-Many-Anfrage
3.1 Anforderungen: Abfragebereitungen (zugehörige Benutzer) und Bestelldetails;
3.2 Fügen Sie die Liste <orderDetail> orderDetails -Eigenschaft in der ordnungen.java -Klasse hinzu (die oben genannte Entität wurde hinzugefügt). Schließlich werden die Auftragsinformationen in Bestellungen zugeordnet, und die Auftragsdetails, die der Bestellung entsprechen, werden in Bestellungen in die orderDetails -Eigenschaft zugeordnet.
3.3 Fügen Sie Folgendes in ordigsCustommapper.xml hinzu
<span style = "Schriftfamilie: Comic sans ms; Schriftgröße: 18px;"> <!-Abfrage Association Association Association User und Bestelldetail-> <select id = "findOrderSandorderDetailResultMap" resultMap = "ordnersandOrderDetailResultMap"> SELECT T1. t3.items_id, t3.items_num, t3.Orders_id aus Bestellungen T1, T_USER T2, OrderDetail T3 wobei t1.user_id = t2.id und t3.Orders_id = t1.id </select> </span>
Die Definition von resultMap wird auch zu ordnersCustommapper.xml hinzugefügt
<span style = "Schriftfamilie: Comic sans ms; Schriftgröße: 18px;"> <!-resultMap für Abfragebereitungen (zugehörige Benutzer) und Auftragsdetails-> <resultMap type = "com.mybatis.Entity.Orders" id = "ordnersandorderDetailResultmap" assoziiertes assoziiertes assoziiertes assocalsSuSresultMapersUrsResultMreservern "--assocalsSuSreservern. Verwenden Sie die Vererbung erweitert und konfigurieren Sie nicht die Zuordnung von Bestellinformationen und Benutzerinformationen in IT-> <!-Zugeordnete Auftragsdetailinformationen Eine Auftragsvereinigung Abfrage hat mehrere Bestelldetails. Sie müssen die Sammlung der Sammlung zu Mapping verwenden: Karten Sie mehrere Datensätze, die in der Association-Eigenschaft in die Sammlung Eigenschaft von Type gefragt wurden: Geben Sie die Art von Pojo in der zugeordneten Sammlungseigenschaft an-> <Sammlung Eigentum = "OrderDetails" oftype = "com.mybatis.Entity.OrderDetail"> <! -> <id column = "orderDetail_id" properation = "id"/> <result column = "items_id" property = "itemSId"/> <resultal column = "items_num" property = "itemnum"/> <results column = "orders_id
3.4 Fügen Sie der ordercustomemapper.java -Schnittstellenklasse eine Methode hinzu, der Code lautet wie folgt:
<span style = "Schriftfamilie: Comic sans ms; Schriftgröße: 18px;">/ ** Abfragehörer (zugehörige Benutzer) und Bestelldetails*/ öffentliche Liste <RoderedDetail> findOrderArdorderDetailResultMap (); </span>
3.5 Fügen Sie der JUNIT -Testklasse Testmethoden hinzu, der Code lautet wie folgt:
<span style = "Schriftfamilie: Comic sans ms; Schriftgröße: 18px;"> // Test für Abfragen von Bestellungen (zugehörige Benutzer) und Auftragsdetails @test public void testorderSandOrderDetailResultMap () {SQLSession SQLSession = SQLSessionFactory.OpenSession (); // Proxy -Objekt ordnungsscustommapper oc = sqlSession.getMapper (ordnersCustommapper.class); // MAPPER -Methodeliste <orderDetail> list = oc.findordersandorderDetailResultmap () aufrufen; System.out.println (Liste); sqlSession.close (); } </span>3.6 Zusammenfassung
MyBatis verwendet die Sammlung von ResultMap, um mehrere Datensätze der zugehörigen Abfrage in eine Listensammelseigenschaft zuzuordnen. Implementierung Verwenden von Ergebnistyp: Kartenauftragsdetails in OrderDetails in Bestellungen, die von selbst verarbeitet werden müssen, verwenden Sie Double Loop Traversal, entfernen Sie doppelte Datensätze und platzieren Sie Bestelldetails in OrdnungDetails.
4. Viele zu viele Anfragen
4.1 Anforderungen: Fragen Sie den Benutzer und die vom Benutzer gekauften Produktinformationen ab
4.2 Mapping -Ideen
Karten Sie Benutzerinformationen in den Benutzer, fügen Sie die Liste der Bestelllisten -Attributliste <bestellungen> Bestelllist in der Benutzerklasse hinzu, um die Bestellliste abzubilden. Fügen Sie die Attributliste für Bestelldetails hinzu. Fügen Sie das Attribut der Elemente hinzu, um die Elemente, die den Bestelldetails entsprechen, zu Element zu kartieren.
4.3 ordnersCustommapper.xml fügt den folgenden Code hinzu:
<span style = "Schriftfamilie: Comic sans ms; Schriftgröße: 18px;"> <!-resultMap zum Abfragen der vom Benutzer gekauften Produktinformationen-> <resultMap type = "com.mybatis.entity.user" id = "userandItemresresresresResultMap"> <!-user Information-> <id "userns-spaltel =" usern-säule = "usern-säulen =" usern-säule = "usern-säule =" user "usern-säule =" user "usens column =" user "usens column =" user "usens-säule =" userns-"user-columne =" usern-kaum "user property="username"/> <result column="sex" property="sex"/> <result column="address" property="address"/> <!-- Order information A user corresponds to multiple orders, using collection mapping--> <collection property="ordersList" ofType="com.mybatis.entity.Orders"> <id column="id" property="id"/> <result column="user_id" property="userid"/> <result column = "number" property = "number"/> <resultal column = "createTime" Property = "createTime"/> <result column = "note" property = "note"/> <resultal column = "note"/> <resultal columne column = "orderDetail_id" properation = "id"/> <result column = "items_id" property = "itemsid"/> <resultal column = "items_num column = "items" javatype = "com.mybatis.Entity.Items"> <id column = "items_id" Property = "id"/> <resultal column = "items_name" Property = "itemsname"/> <Ergebnis column = "items_name" Property = "itemsname"/> <Ergebnis columne </assoziation> </collection> </collection> </resultmap> <!-Um die von Benutzern und Benutzern gekauften Produktinformationen abzufragen, verwenden Sie Resulamap-> <select id = "findUseranditemsResultMap" resultMap = "user und user und user und userSresresultmap"> T1. t3.items_num, t3.orders_id, t4.itemsname items_name, t4.detail items_detail, t4.price items_price FROM orders t1, t_user t2, orderdetail t3, items t4 WHERE t1.user_id = t2.id AND t3.orders_id=t1.id AND t3.items_id = t4.id </select> </span>
4.4 Fügen Sie die folgende Methode hinzu, um Custommapper.java:
<span style = "Schriftfamilie: Comic sans ms; Schriftgröße: 18px;"> / ** Die von Benutzern und Benutzern und Benutzern gekauften Produktinformationen* / publiclist <Unters> findUerandItemSresultmap () abfragen; </span>
4.5 Fügen Sie Testmethoden zum Jungtest hinzu, der Code lautet wie folgt:
<span style = "Schriftfamilie: Comic sans ms; Schriftgröße: 18px;"> // Die Informationen der vom Benutzer und dem Benutzer gekauften Produkte und des @test public void testfinduserandItemSultmap () {SQLSession SQLSession = SQLSessionFactory.OpenSession (); // Erstellen Sie einen Proxy -Objekt ordnungsscustommapper oc = sqlSession.getMapper (ordnersCustommapper.class); // MAPPER -Methodeliste <Bers> list = oc.finduserandItemSresultmap () aufrufen; System.out.println (Liste); sqlSession.close (); } </span> 4.6 resultmap Zusammenfassung
Ergebnistyp:
Funktion: Karten Sie die Abfrageergebnisse in Pojo gemäß dem SQL -Spaltennamen POJO -Attributname -Konsistenz.
Anlass: Häufige Anzeige detaillierter Datensätze, z. B. wenn Benutzer Produktdetails kaufen und alle zugehörigen Abfrageinformationen auf der Seite anzeigen, können Sie direkt das Ergebnistyp verwenden, um jeden Datensatz in ein Pojo zuzuordnen und die Liste (Pojo in der Liste) auf der Front-End-Seite zu durchqueren.
resultMap:
Verwendung: Assoziation und Sammlung zur Vervollständigung von Eins-zu-Eins- und Eins-zu-Viele-Erweiterungszuordnungen (es gibt spezielle Zuordnungsanforderungen für die Ergebnisse).
Verein:
Funktion: Zeichnen Sie die zugehörigen Abfrageinformationen in ein Pojo -Objekt ab.
Anlass: Um die Abfragen zugeordneten Informationen zu erleichtern, können Sie mit Association verbundene Auftragsinformationen in Pojo -Attribute von Benutzerobjekten abgeben, wie z. B. Abfragen von Bestellungen und zugehörigen Benutzerinformationen.
Wenn Sie den Ergebnistyp verwenden, kann die Abfrageergebnisse nicht dem Pojo -Attribut des Pojo -Objekts zugeordnet werden. Wählen Sie, ob das Ergebnistyp oder das Ergebnismap entsprechend den Anforderungen des Durchquerens der Abfrage "Ergebnismenge" verwendet werden soll.
Sammlung:
Funktion: Zeichnen Sie die zugehörigen Abfrageinformationen in eine Listensammlung ab.
Anlass: Um die Abfragebedingungsinformationen zu erleichtern, können Sie die Sammlung der Assoziationsinformationen der Listensammlung abbilden. Zum Beispiel: Abfragen des Benutzerberechtigungsumfangsmoduls und des Menüs im Modul können Sie die Sammlung verwenden, um die Modulliste zu kartieren, um die Menülistenattribute des Modulobjekts zu kartieren. Der Zweck davon ist, die Abfrage des Abfrageergebnisses zu erleichtern.
Wenn Sie das Ergebnistyp verwenden, können Sie die Abfrageergebnisse nicht der Listensammlung zuordnen.
Das obige ist die erweiterte Zuordnung in MyBatis, die 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!