您好,登錄后才能下訂單哦!
本篇內(nèi)容介紹了“Mybatis中的一對(duì)多舉例分析”的有關(guān)知識(shí),在實(shí)際案例的操作過(guò)程中,不少人都會(huì)遇到這樣的困境,接下來(lái)就讓小編帶領(lǐng)大家學(xué)習(xí)一下如何處理這些情況吧!希望大家仔細(xì)閱讀,能夠?qū)W有所成!
一對(duì)多
(1)類(lèi)別表不變化,新增加產(chǎn)品表,一個(gè)類(lèi)別下有多個(gè)產(chǎn)品
(2)創(chuàng)建Product實(shí)體類(lèi)
private int id; private String name; private float price; setter,getter,tostring
(3)修改Category實(shí)體類(lèi),提供products的集合
private int id; private String name; List<Product> products; setter,getter,tostring
(4)暫時(shí)無(wú)需 Product.xml
(5)修改Category.xml
<mapper namespace="com.how2java.pojo"> <resultMap type="Category" id="categoryBean"> <id column="cid" property="id" /> <result column="cname" property="name" /> <!-- 一對(duì)多的關(guān)系 --> <!-- property: 指的是集合屬性的值, ofType:指的是集合中元素的類(lèi)型 --> <collection property="products" ofType="Product"> <id column="pid" property="id" /> <result column="pname" property="name" /> <result column="price" property="price" /> </collection> </resultMap> <!-- 關(guān)聯(lián)查詢(xún)分類(lèi)和產(chǎn)品表 --> <select id="listCategory" resultMap="categoryBean"> 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>
通過(guò)left join關(guān)聯(lián)查詢(xún),對(duì)Category和Product表進(jìn)行關(guān)聯(lián)查詢(xún)。
與前面的有所區(qū)別,這里不是用的resultType, 而是resultMap,通過(guò)resultMap把數(shù)據(jù)取出來(lái)放在對(duì)應(yīng)的 對(duì)象屬性里。
注: Category的id 字段 和Product的id字段同名,Mybatis不知道誰(shuí)是誰(shuí)的,所以需要通過(guò)取別名cid,pid來(lái)區(qū)分。name字段同理。
(6)在TestOneToMany中
List<Category> cs = session.selectList("listCategory"); for (Category c : cs) { System.out.println(c); List<Product> ps = c.getProducts(); for (Product p : ps) { System.out.println("\t"+p); } }
“Mybatis中的一對(duì)多舉例分析”的內(nèi)容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業(yè)相關(guān)的知識(shí)可以關(guān)注億速云網(wǎng)站,小編將為大家輸出更多高質(zhì)量的實(shí)用文章!
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀(guān)點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。