Mybatis一對多處理
對于一個老師,可以同時教多個學生,是以站在老師的角度,和學生的關系就是一對多了
這是student表和teacher表内容
pojo:
我們先寫一個接口來查詢出所有老師的記錄
映射檔案:
測試代碼:列印出教師對象内容
運作結果:
我們可以發現,teacher對象中的students沒有成功顯示,這是因為屬性名和字段名不一緻導緻的,是以我們需要使用結果集映射resultMap
要列印teacher對應的學生資訊,我們有必要先修改一下sql語句,把兩張表連接配接起來
定義TeacherStudent結果集映射
由于列印的是teacher的内容,是以type是teacher ;對于簡單屬性,直接用result标簽與資料庫字段作映射,注意這裡的column字段要和上面sql語句的别名保持一緻,否則找不到字段會報錯,一個teacher對應多個學生,是以要用collection标簽,property的值要和實體類裡的屬性同名 ;接着就直接映射學生字段和屬性即可
測試代碼同上,運作一下:
sql語句結果正常顯示,teacher對象包含的所有學生資訊也成功列印出來
tip:如果上面collection标簽下學生的屬性不全部映射的話,列印出來的學生對應的屬性為null
比如不映射stuname
運作結果就不含學生名
這種方法是基于連接配接查詢的一對多處理,還有一種是子查詢方法,較複雜,有興趣的朋友可以去了解一下。