Lors de la sélection du mappage dans MyBatis, le type de retour peut être utilisé avec ResultType ou ResultMap. ResultType représente directement le type de retour (correspondant à l'entité de notre objet modèle), tandis que le résultat est une référence au résultat externe (la relation cachée ->> valeur entre db et modèle est définie à l'avance), mais le résultat et le résultat ne peuvent pas exister en même temps.
Lorsque MyBatis interroge le mappage, en fait, chaque requête d'attribut est placée dans une carte correspondante, où la clé est le nom d'attribut et la valeur est sa valeur correspondante.
① Lorsque l'attribut de type de retour fourni est ResultType, MyBatis supprimera les paires de valeurs de clé dans la carte et les affectera aux attributs correspondants de l'objet spécifié par resultType. Ainsi, en fait, le type de retour de chaque carte de requête de MyBatis est ResultMap. Cependant, lorsque l'attribut de type retour fourni est ResultType, MyBatis attribue automatiquement la valeur correspondante aux attributs de l'objet spécifié par resultType.
② Lorsque le type de retour fourni est ResultMap, car la carte ne peut pas bien représenter le modèle de domaine, il doit le convertir davantage en l'objet correspondant lui-même, qui est souvent très utile dans les requêtes complexes.
Voici un exemple pour illustrer la différence entre les deux:
package com.clark.model; Importer java.util.date; Goods de classe publique {ID entier privé; entier privé Cateid; nom de chaîne privé; double prix privé; Description de la chaîne privée; OrderNo entier privé; Date privée UpdateTime; Goods publics () {} Goods publics (ID entier, entier Cateid, nom de chaîne, double prix, description de la chaîne, ordre entier, date de mise à jour) {super (); this.id = id; this.cateid = cateid; this.name = name; this.price = prix; this.description = description; this.OrderNo = OrderNo; this.updateTime = updateTime; } public Integer getID () {return id; } public void setid (INGER ID) {this.id = id; } public Integer getCateId () {return cateid; } public void setCateId (entier cateid) {this.cateid = cateid; } public String getName () {Nom de retour; } public void setName (string name) {this.name = name; } public double getPrice () {prix de retour; } public void setPrice (double prix) {this.price = prix; } public String getDescription () {return Description; } public void setDescription (String Description) {this.description = Description; } public entier getOrderNo () {return OrderNo; } public void SetOrderNo (entier OrderNo) {this.OrderNo = OrderNo; } Public Date gettimestamp () {return updateTime; } public void settimestamp (date updateTime) {this.updateTime = updateTime; } @Override public String toString () {return "[Les biens incluent: id =" + this.getId () + ", name =" + this.getName () + ", orderNo =" + this.getOrderNo () + ", cateid =" + this.getCateId () + ", updateTime =" + this.gettimestamp () + "]";; }}<? xml version = "1.0" Encoding = "UTF-8"?> <! Doctype Configuration public "- // mybatis.org//dtd config 3.0 // en" "http://mybatis.org/dtd/mybatis-3config.dtd"> <configuration> Alias = "biens" type = "com.clark.model.goods"> </pactalias> </pactaliases> <Environments default = "Development"> <Environment id = "Development"> <transactionManager type = "jdbc" /> <dataSource type = "Poolled"> <propriété name = "Driver" value = "Oracle.jdbc.Driver Value = "JDBC: Oracle: Thin: @ 172.30.0.125: 1521: ORADB01" /> <propriété name = "username" value = "Settlement" /> <propriété name = "mot de passe" value = "Settlement" /> </ DataSource> </ Environment> </ Environments> <MAPPERS> <MAPPERCE = "COM / CLARK </mappers> </FIGIGRUend> </span>
<? xml version = "1.0" Encoding = "utf-8"?> <! Doctype Mapper public "- // mybatis.org//dtd mapper 3.0 // en" "http://mybatis.org/dtd/mybatis" type = "com.clark.model.goods" id = "t_good"> <id chronn = "id" propriété = "id" /> <résultat chronn = "cate_id" propriété = "cateid" /> <résultat column = "name" Property = "name" /> <result column = "prix" propriété = "prix" /> <résultat colonnes = "Description" Property = "Description" /> <résultat Collun_nOnOn " Property = "OrderNo" /> <Result Column = "Update_time" propriété = "UpdateTime" /> </sultMap> <! - La différence entre le résultatmap et le résultat " <select id = "selectAllGoods" resultMap = "t_good"> SELECT ID, CATE_ID, NAME, PRIX, DESCRIPTION, ORDER_NO, UPDATE_THILE FROM GOODS </ECLET> <INSERT ID = "INSERTGOOD" ParameterType = "Goods"> Insérer dans les marchandises (ID, CATE_ID, nom, prix, Description, Ordre_No, Update_time) VALEURS (# {id}, # {cateid}, # {name}, # {prix}, # {description}, # {OrderNo}, # {UpdateTime}) </sert> </naupper> package com.clark.mybatis; Importer java.io.ioException; Importer java.io.reader; Importer java.util.list; import org.apache.ibatis.io.resources; import org.apache.ibatis.session.sqlSession; import org.apache.ibatis.session.sqlSessionFactory; import org.apache.ibatis.session.sqlSessionFactoryBuilder; import com.clark.model.goods; classe publique TestGoods {public static void main (String [] args) {String Resource = "Configuration.xml"; Try {Reader Reader = Resources.getResourCeAsReader (ressource); SQLSessionFactory SessionFactory = new SQLSessionFactoryBuilder (). Build (lecteur); SqlSession Session = SessionFactory.OpenSession (); </span> <span style = "Font-Size: 18px;"> <span style = "White-Space: pre"> </span> // Scénarios utilisant des produits de résultat = (produits) Session.Selectone ("Clark.SelectGoodByid", 4); System.out.println (GOODS.TOSTRING ()); </span> [html] Afficher les fragments de code de vue de copie ordinaire dérivées de mes fragments de code sur le code <span style = "font-size: 18px;"> <span style = "White-Space: Pre"> </ span> // scénarios à l'aide de la liste des résultats <chapetaires> gs = session.SelectList ("" CLARKER.Selectall); pour (marchandises de marchandises2: gs) {System.out.println (bourse2.toString ()); } // marchandises = Nouveaux marchandises (4, 12, "Clark", 12h30, "Test Is OK", 5, New Date ()); // session.insert ("Clark.insertgood", marchandises); // session.Commit (); } catch (ioException e) {e.printStackTrace (); }}}La sortie du résultat est:
<span style = "Color: # CC0000;"> [Les biens incluent: id = 4, name = Clark, OrderNo = null, cateid = null, updatetime = null] --- Résultat en utilisant le résultat </span> <span style = "Color: # 33FF33;"> --- Résultat en utilisant le résultat -
Ce qui précède est une introduction à la différence entre ResultType et ResultMap dans Mybatis qui vous a été introduit. J'espère que cela vous sera utile. Si vous avez des questions, veuillez me laisser un message et l'éditeur vous répondra à temps. Merci beaucoup pour votre soutien au site Web Wulin.com!