mybatis associationÊÇÒ»¶ÔÒ»µÄ¹ØÁª²éѯ£¬ËùνµÄÒ»¶ÔÒ»¹ØÁª²éѯ£¬Àí½âºÜ¼òµ¥¡£±ÈÈçÎÒÃǹ´Ñ¡¡°Ð¡Ã÷¡±Í¬Ñ§Ö®ºó´ø³ö¡°Ð¡Ã÷°Ö°Ö¡±µÄÄêÁ䣬ְҵµÈµÈ¸öÈËÐÅÏ¢£¬ÒòΪСÃ÷¾ÍÒ»¸ö°Ö°Ö£¬ËùÒÔÊÇÒ»¶ÔÒ»¹Øϵ¡£
Èç¹ûÄÜ´ø³ö¡°Ò»ÈºÐ¡Ã÷°Ö°Ö¡±£¬ÄǾͲ»ÊÇmybatis associationÒ»¶ÔÒ»¹ØÁª²éѯ£¬¶øÊÇÊôÓÚmybatis collectionÒ»¶Ô¶à¹ØÁª²éѯµÄ·¶³ëÁË£¬Èç¹ûСÃ÷Óкܶà°Ö°Ö¾Í¡£¡£¡£¡£ÁË£¡
Ò»£ºÏÂÃæÎÒÃÇÏÈÀ´Ñ§Ï°mybatis associationÒ»¶ÔÒ»¹ØÁª²éѯ°É£¡
associationÒ»¶ÔÒ»¹ØÁª²éѯÐèÒªÁ½¸öʵÌåÀ࣬һ¸öÊÇСÃ÷£¨XiaoMing£©µÄʵÌåÀ࣬һ¸öÊÇСÃ÷°Ö°Ö£¨XiaoMingFather£©µÄʵÌåÀ࣬·Ö±ðÈçÏ£º
СÃ÷µÄʵÌåÀࣨXiaoMing£©ÈçÏ£º
public class XiaoMing { //СÃ÷Ö÷¼üid private int id; //Ãû×Ö private String name; //°Ö°Ö£¬Ò»¶ÔÒ»²éѯ֮ºó»á½«°Ö°ÖµÄ¶ÔÏó¸³Öµ¸øÕâ¸öÊôÐÔ private XiaoMingFather father; //getter setter... }
СÃ÷°Ö°ÖµÄʵÌåÀࣨXiaoMingFather£©ÈçÏ£º
public class XiaoMingFather { //СÃ÷°Ö°ÖÖ÷¼üid private int id; //СÃ÷µÄid£¬ºóÃæ»áÓõ½Ð¡Ã÷id²é³öСÃ÷°Ö°Ö¶ÔÏó private int xiaomingid; //СÃ÷°Ö°ÖµÄÃû×Ö private String name; //СÃ÷°Ö°ÖµÄÄêÁä private int age; //СÃ÷°Ö°ÖµÄ¹¤×÷Ãû³Æ private String jobName; //getter setter... }
²½ÖèÒ»£ºÔÚСÃ÷°Ö°ÖµÄmapper javaÀàÖмÓÈëÒ»¸ö½Ó¿Ú£¬¸ù¾ÝСÃ÷id²éѯСÃ÷°Ö°ÖµÄ¶ÔÏ󣬴úÂëÈçÏ£º
package com.tpyyes.dao; //mapperËùÔÚ°ü·¾¶ public interface XiaoMingFatherMapper{ //·µ»Ø¶ÔÏóΪСÃ÷°Ö°Ö£¬´«ÈëµÄΪСÃ÷id XiaoMingFather selectbyXiaomingid(Integer xiaomingid); }
²½Öè¶þ£ºÔÚСÃ÷°Ö°ÖµÄmapper xmlÎļþÖÐʵÏÖselectbyXiaomingid()Õâ¸ö²éѯÓï¾ä£¬Ð¡±à½«Õâ¸öÎļþÈ¡ÃûΪXiaoMingFatherMapper.xml£¬¼ÓÈ롰СÃ÷°Ö°Ö¡±µÄÊý¾Ý¿â±íÃûΪ¡°xiao_ming_father¡±£¬Ôò´úÂëÈçÏ£º
<select id="selectbyXiaomingid" parameterType="java.lang.Integer" resultMap="BaseResultMap"> select * from xiao_ming_father where id = #{xiaomingid,jdbcType=INTEGER} </select>
²½ÖèÈý£ºÔÚСÃ÷mapper xmlÅäÖÃÎļþÖÐÌí¼ÓÈçϵÄresultMapÓ³É䣬ÔÚĩβ¼ÓÈë¡°association¡±±êÇ©£¬´«ÈëµÄÖµÊÇСÃ÷µÄid£¬Ó³ÉäÎļþÈçÏ£º
<resultMap id="BaseResultMap" type="com.voavoice.english.model.Menu"> <id column="id" jdbcType="INTEGER" property="id" /> <result column="name" jdbcType="VARCHAR" property="name" /> // fatherÊôÐÔ¾ÍÊÇСÃ÷ʵÌåÀàÖеİְÖÊôÐÔ£¬idÊÇСÃ÷µÄidÖµ£¬¸ù¾ÝСÃ÷µÄid²éѯ³öСÃ÷°Ö°Ö£¡ <association property="father" column="id" select="com.tpyyes.dao.XiaoMingFatherMapper.selectbyXiaomingid"/> </resultMap>
ͨ¹ýÉÏÃæÈý¸ö²½ÖèÖ®ºó£¬µ±ÎÒÃÇÔÚ³ÌÐòÖиù¾Ýid»òÆäËüÌõ¼þ²éѯСÃ÷¶ÔÏóµÄʱºò£¬³ÌÐò¾Í»á×Ô¶¯È¥¡°xiao_ming_father¡±ÕâÕűíÖаÑСÃ÷°Ö°ÖµÄÊý¾Ý²éѯ³öÀ´£¬²¢¸³Öµµ½¡°father¡±Õâ¸öÊôÐÔÖÐÁË£¬ºÜ¼òµ¥°É£¡
¶þ£ºmybatis collectionÒ»¶Ô¶à¹ØÁª²éѯ
ËùνµÄÒ»¶Ô¶à¹ØÁª²éѯ£¬¾ÍÊǸù¾ÝÒ»¸öСÃ÷µÄidÄܲéѯ³ö¡°¶à¸öСÃ÷°Ö°Ö¡±£¬µ±ÎÒÃÇÕâÑùÀí½âµÄʱºò£¬¾Í²»ÄÑѧϰmybatis collectionÒ»¶Ô¶à¹ØÁª²éѯÁË£¬ÆäʵֻÐèÒª¸Ä±äÈý¸ö²¿·Ö£¬¾Í¿ÉÒÔ²éѯ³öСÃ÷¶à¸ö°Ö°ÖµÄÐÅÏ¢ÁË£¬ÈçÏ£º
Ð޸IJ¿·ÖÒ»£º½«Ð¡Ã÷µÄʵÌåÀࣨXiaoMing£©ÖеÄfather¸Ä³ÉList¼¯ºÏ£¬ÊµÌåÀàÈçÏ£º
public class XiaoMing { //СÃ÷Ö÷¼üid private int id; //Ãû×Ö private String name; //°Ö°Ö£¬Ò»¶ÔÒ»²éѯ֮ºó»á½«°Ö°ÖµÄ¶ÔÏó¸³Öµ¸øÕâ¸öÊôÐÔ private List<XiaoMingFather> fatherList; //getter setter... }
Ð޸IJ¿·Ö¶þ£º½«Ð¡Ã÷°Ö°ÖµÄmapper javaÀàÖеĽӿڴӷµ»ØµÄʵÌåÀà¶ÔÏó±ä³É·µ»ØList¼¯ºÏ£¬´úÂëÈçÏ£º
package com.tpyyes.dao; //mapperËùÔÚ°ü·¾¶ public interface XiaoMingFatherMapper{ //·µ»Ø¶ÔÏóΪСÃ÷°Ö°ÖµÄ¼¯ºÏ£¬´«ÈëµÄΪСÃ÷id List<XiaoMingFather> selectbyXiaomingid(Integer xiaomingid); }
Ð޸IJ¿·ÖÈý£º½«Ð¡Ã÷mapper xmlÅäÖÃÖеÄassociation±êÇ©Õⲿ·Ö£¬¸Ä³Écollection±êÇ©£¬Íâ¼üÊôÐԸijɡ°fatherList¡±£¬´«Èëµ½selectbyXiaomingid()·½·¨ÖеÄÖµÈÔÈ»ÊÇСÃ÷µÄid£¬´úÂëÈçÏ£º
<collection property="fatherList" column="id" select="com.tpyyes.dao.XiaoMingFatherMapper.selectbyXiaomingid"/>
ÕâÑù£¬²éѯСÃ÷µÄ¸öÈËÐÅÏ¢£¬¾Í»á×Ô¶¯´ø³öСÃ÷µÄ¶à¸ö°Ö°ÖÁË£¡Å£êþ°É£¡