mybatis association , collection 標(biāo)簽使用

自己記錄一下

定義User ,Record
public class User {
    private String user_id;
    private String user_name;
    private List<Record> recordList;
    private Record record;
}
public class Record {
    private String record_id;
    private String record_name;
}
<resultMap id="userMap" type="com.air.manager.pojo.agent.User">
        <id column="USER_ID" property="user_id" jdbcType="VARCHAR" />
        <result column="USER_NAME" property="user_name" jdbcType="VARCHAR" />

        // 一、關(guān)聯(lián)單個(gè)對象 association ,如果關(guān)聯(lián)對象超過一個(gè)會報(bào)錯(cuò)  
        //方法1 使用select屬性查找selectRecordByUserId去加載
        <association property="record" column="USER_ID" select="selectRecordByUserId"/>

        //方法2 直接在內(nèi)部定義record屬性
        <association property="record" javaType="com.air.manager.pojo.agent.Record" >
            <id column="RECORD_ID" property="record_id" jdbcType="VARCHAR" />
            <result column="RECORD_NAME" property="record_name" jdbcType="VARCHAR" />
        </association >

        // 二、關(guān)聯(lián)對象集合 collection
        //方法1 使用select屬性查找selectRecordByUserId去加載
        <collection property="recordList" column="USER_ID" select="selectRecordByUserId"/>

        //方法2 直接在內(nèi)部定義recordList集合 ,javaType="java.util.ArrayList"可以不添加
        <collection property="recordList" ofType="com.air.manager.pojo.agent.Record"  javaType="java.util.ArrayList" >
            <id column="RECORD_ID" property="record_id" jdbcType="VARCHAR" />
            <result column="RECORD_NAME" property="record_name" jdbcType="VARCHAR" />
        </collection>
</resultMap>

<select id="queryList" resultMap="userMap">
         SELECT 
             T.USER_ID ,
             T.USER_NAME
         FROM KING_USER T 
</select>

<resultMap id="recordMap" type="com.air.manager.pojo.agent.Record">
        <id column="RECORD_ID" property="record_id" jdbcType="VARCHAR" />
        <result column="RECORD_NAME" property="record_name" jdbcType="VARCHAR" />
</resultMap>
    
<select id="selectRecordByUserId" resultMap="recordMap">
        SELECT  
         R.RECORD_ID,
         R.RECORD_NAME
        FROM KING_RECORD R WHERE R.USER_ID=#{userId} //這里的userId名稱可以隨意,一樣可以取到值
</select>
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

友情鏈接更多精彩內(nèi)容