MyBatis collection的兩種形式

2021-09-11 00:05:13 字數 1072 閱讀 4265

與association一樣,collection元素也有兩種形式,現介紹如下:

一、巢狀的resultmap

<?xml version="1.0" encoding="utf8"?>

查詢教師及其指導的學生的資訊。由於教師、學生都有

id、name、gender等屬性,因此給教師的字段都起了別名-->

select t.id t_id, t.name t_name, t.gender t_gender,

t.research_area t_research_area, t.title t_title,

s.id,s.name, s.gender,s.major,s.grade

from teacher t,student s where t.id=#

and s.supervisor_id = t.id

執行程式結果如下: 

與以前的寫法相比,這種寫法的缺點是學生實體對映被嵌入到教師實體對映中,因此學生實體對映不能被重用。

二、巢狀的select語句

<?xml version="1.0" encoding="utf8"?>

查詢教師的資訊。-->

select * from teacher where id=#

<?xml version="1.0" encoding="utf8"?>

亦採用命名空間名.相關元素id的形式。

column="supervisor_id"屬性不可少-->

select * from student where supervisor_id = #

執行結果如下:

從以上可看出,collection的這兩種形式與association的兩種形式非常相似。

Win32 Application 的兩種形式

工程 easywin 檔案 easywin.cpp 內容 乙個基本的win32程式 include include 函式宣告 bool initwindow hinstance hinstance,int ncmdshow lresult callback winproc hwnd hwnd,uin...

mysql的兩種引擎 mysql的兩種儲存引擎

背景 最近在使用spring data jpa操作mysql,在使用jpa的自動建表功能之後,處理多對多關係 manytomany的時候,spring data jpa會給中間表的兩個欄位都加上外來鍵引用。當前使用的版本預設的資料庫儲存引擎為myisam。這種儲存引擎是為資料庫查詢效能而生的,不支援...

Divide Two Integers 的兩種解法

divide two integers without using multiplication,division and mod operator.if it is overflow,return max int.解題思路 1.通過被除數減去除數來得到被除數中包含多少個除數,一直減到被除數小於等於...