什么軟件可以做網(wǎng)站html論壇推廣軟件
一、MyBatis關(guān)聯(lián)查詢
在關(guān)系型數(shù)據(jù)庫(kù)中,表與表之間存在著3種關(guān)聯(lián)映射關(guān)系,分別為一對(duì)一、一對(duì)多、多對(duì)多。
?
一對(duì)一:一個(gè)數(shù)據(jù)表中的一條記錄最多可以與另一個(gè)數(shù)據(jù)表中的一條記錄相關(guān)。列如學(xué)生與學(xué)號(hào)就屬于一對(duì)一關(guān)系。
一對(duì)多:主鍵數(shù)據(jù)表中的一條記錄可以與另外一個(gè)數(shù)據(jù)表任意數(shù)量的記錄相關(guān),另外一個(gè)數(shù)據(jù)表中的一條記錄只能與主鍵數(shù)據(jù)表中的某一條記錄相關(guān)。列如班級(jí)與學(xué)生就屬于一對(duì)多關(guān)系。
多對(duì)多:一個(gè)數(shù)據(jù)表中的一條記錄可以與另外一個(gè)數(shù)據(jù)表任意數(shù)量的記錄相關(guān),另外一個(gè)數(shù)據(jù)表中的一條記錄也可以與本數(shù)據(jù)表中任意數(shù)量的記錄相關(guān)。列如學(xué)生和老師就屬于多對(duì)多關(guān)系。
1、MyBatis一對(duì)一關(guān)聯(lián)查詢
在MyBatis中,通過(guò)<association>元素來(lái)處理一對(duì)一關(guān)聯(lián)關(guān)系。
<association>元素提供了一系列屬性用于維護(hù)數(shù)據(jù)表之間的關(guān)系。
<association>元素中的屬性如下表所示:
注意:接口文件的路徑和配制映射文件的路徑不一樣,詳情見下圖:??
?
?< association>元素的示例配置如下:
< !- - 方式一:嵌套查詢-->
< association property="card" column="card_id" javaType="com.Jorya.model.StudentIdCard"select="com.Jorya.mapper.StudentIdCardMapper.findCodeById"/><!-- 方式二: 嵌套結(jié)果-->
<association property="card" javaType="com.Jorya.Model.StudentIdCard"><id property="id" column="card_id"/><result property="code" column="code"/>
</association>
2、MyBatis一對(duì)多關(guān)聯(lián)查詢
MyBatis中有一個(gè)< resultMap>元素,其中包含了一個(gè)< collection>子元素,MyBatis通過(guò)這個(gè)子元素來(lái)處理一對(duì)多聯(lián)系。
< collection>子元素的屬性大部分與< association>元素相同,其中包含了一個(gè)特殊元素——ofType,ofType與javaType對(duì)應(yīng),用于指定實(shí)體對(duì)象中集合類屬性所包含的元素類型。
< collection>元素的示例配置如下:
<!--嵌套查詢>
<collection property="ordersList" column="id"ofType="con.itheima.po.Orders"select="com.itheima.mapper.OrderMapper.selectOrders"/>
<!--嵌套結(jié)果-->
<collection property="orderList" ofType="com.itheima.po.Orders'><id property="id" column="orders_id"/><result property="number' column="number"/>
</collection>
3、MyBatis多對(duì)多關(guān)聯(lián)查詢
通過(guò)resultMap的collection元素實(shí)現(xiàn);
<collection />是mybatis處理多對(duì)多關(guān)系的,是指拿到一個(gè)集合,property="listRight"的內(nèi)容是對(duì)應(yīng)你model層表中表示多對(duì)多關(guān)系的屬性名
?fetchType表示是懶加載還是立刻加載; ?
select表示是選擇關(guān)聯(lián)關(guān)系的哪個(gè)方法獲取數(shù)據(jù) ;
column表示傳到映射關(guān)系的列的值
?