日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

第四章关联映射

發布時間:2024/4/15 编程问答 28 豆豆
生活随笔 收集整理的這篇文章主要介紹了 第四章关联映射 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

|----認識關聯映射:
介紹:
在以面向對象思想設計程序時,對象之間會產生關聯引用.比如學生與班級,學生對象含有班級類型的屬性,此時就會引用班級對象.將對象之間的關聯關系映射到數據庫,稱為關聯映射.

分析:[如何理解映射]
ORM映射:
對象模型 數據庫模型
對象 表
屬性 字段
引用關系 表關系[外鍵字段]
關聯映射的本質: 將對象與對象之間的引用,轉為數據表與數據表之間的引用[通過外鍵實現]
備注: 無論哪種關聯關系,數據表中的外鍵只能在多端添加

映射類型:
一對一(User-IDCard)
一對多(Department-Employee)
多對一(Student-Class)
多對多(Teacher - Student)

|-----實現關聯對象的映射:
實現關聯對象的映射:[代碼證明 第1條]
1.MyBatis自動完成普通屬性與表字段的映射: 將字段的值賦給同名的屬性.
2.MyBatis無法自動完成關聯對象與表字段的映射,需要手動設置映射關系,如下:

<resultMap><id /><!--映射主鍵 --><result /><!-- 映射普通屬性 --><關聯標簽 /><!-- 映射關聯屬性 --> </resultMap>

附加:
與resultType區別:
resultType: 只支持自動映射. 若含有關聯字段,無法完成映射,而映射為null.
: 支持自動映射及手動映射. 自動映射同resultType.

關聯映射標簽:
association標簽: 映射對象為單個對象時使用
collection標簽 :映射對象為多個對象時使用;
[Hibernate中有4個: one-to-one ,one-to-many,many-to-one,many-to-many]
備注:
無論是哪一種映射關系或查詢方案[嵌套結果/查詢],編寫映射文件時,只需考慮映射的屬性的類型.若是映射一個對象,則用association標簽. 若是映射多個對象,則用collection標簽.

關聯映射方案:
a.嵌套結果
b.嵌套查詢
|-----查詢方案: [代碼演示]
總述:
無論哪種映射關系,都支持 嵌套查詢 和 嵌套結果.
嵌套結果:[一條命令查詢所有]

<!-- 查詢所有學生及班級: 嵌套結果 --><select id="listStu_1" resultMap="stumap_1">select s.id sid , name , sex , age ,class ,c.id cid,className from student s,class c where class=c.id;</select><resultMap id="stumap_1" type="student"><id column="sid" property="id"></id><result column="name" property="name"></result><result column="sex" property="sex"></result><result column="age" property="age"></result> <!--<result column="address" property="myClass"></result>--><association property="myClass" column="class"><id column="cid" property="id"></id><result column="className" property="className"></result></association> </resultMap>

嵌套查詢:[多條命令查詢]

<select id="listStu_2" resultMap="stumap_2">select * from student; </select> <select id="listClass" resultType="myClass">select * from class where id=#{id} </select> <resultMap id="stumap_2" type="student"><id column="sid" property="id"></id><result column="name" property="name"></result><result column="sex" property="sex"></result><result column="age" property="age"></result> <!-- <result column="class" property="myClass"></result>--><association property="myClass" column="class" select="listClass"></association> </resultMap>

|-----開發含有關聯映射的項目:
關聯映射模型與單個對象模型操作中,主要區別在映射文件的查詢配置,其他方面[jar,配置文件,java程序]完全相同.

resultType只能實現普通屬性 與 數據表字段的自動映射,無法實現引用對象類型屬性與數據表字段的自動映射.
resultMap只能實現普通屬性 與 數據表字段的自動/手動映射,實現引用對象類型屬性與數據表字段

總結

以上是生活随笔為你收集整理的第四章关联映射的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。