溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點(diǎn)擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

Mybatis的多對一舉例分析

發(fā)布時間:2021-11-16 15:14:56 來源:億速云 閱讀:98 作者:iii 欄目:大數(shù)據(jù)

本篇內(nèi)容主要講解“Mybatis的多對一舉例分析”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實(shí)用性強(qiáng)。下面就讓小編來帶大家學(xué)習(xí)“Mybatis的多對一舉例分析”吧!

        多對一

        (1)修改Product.java,為Product增加category屬性

    private int id;
    private String name;
    private float price;
    private Category category;
    setter,getter,tostring

        (2)增加Product.xml

            提供Product.xml,通過listProduct配置關(guān)聯(lián)查詢的sql語句。

            然后通過resultMap ,進(jìn)行字段和屬性的對應(yīng)。

            使用association 進(jìn)行多對一關(guān)系關(guān)聯(lián),指定表字段名稱與對象屬性名稱的一一對應(yīng)關(guān)系

            注: Category的id 字段 和Product的id字段同名,Mybatis不知道誰是誰的,所以需要通過取別名cid,pid來區(qū)分。name字段同理。

    <mapper namespace="com.how2java.pojo">
        <resultMap type="Product" id="productBean">
            <id column="pid" property="id" />
            <result column="pname" property="name" />
            <result column="price" property="price" />
     
            <!-- 多對一的關(guān)系 -->
            <!-- property: 指的是屬性名稱, javaType:指的是屬性的類型 -->
            <association property="category" javaType="Category">
                <id column="cid" property="id"/>
                <result column="cname" property="name"/>
            </association>
        </resultMap>
     
        <!-- 根據(jù)id查詢Product, 關(guān)聯(lián)將Orders查詢出來 -->
        <select id="listProduct" resultMap="productBean">
            select c.*, p.*, c.id 'cid', p.id 'pid', c.name 'cname', 
            p.name 'pname' from category_ c left join product_ p on c.id = p.cid
        </select>   
    </mapper>

        (3)在mybatis-config.xml中增加對于Product.xml的映射

    <mappers>
        <mapper resource="com/how2java/pojo/Category.xml"/>
        <mapper resource="com/how2java/pojo/Product.xml"/>
    </mappers>

        (4)在TestManyToOne中

        List<Product> ps = session.selectList("listProduct");
        for (Product p : ps) {
            System.out.println(p+" 對應(yīng)的分類是 \t "+ p.getCategory());
        }

到此,相信大家對“Mybatis的多對一舉例分析”有了更深的了解,不妨來實(shí)際操作一番吧!這里是億速云網(wǎng)站,更多相關(guān)內(nèi)容可以進(jìn)入相關(guān)頻道進(jìn)行查詢,關(guān)注我們,繼續(xù)學(xué)習(xí)!

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI