Ibatis組合鍵關聯查詢

2022-03-12 19:36:38 字數 1587 閱讀 1901

在使用ibatis時,會經常遇到關聯查詢,一般有兩種解決方案:

使用**進行關聯查詢

使用ibatis配置檔案進行關聯查詢

使用**進行關聯查詢不作解釋,本次主要是針對ibatis配置檔案進行關聯查詢進行**,如發現有問題或不當之處還請不吝賜教!

對於ibatis配置檔案進行關聯查詢,下面舉乙個例子進行輔助描述:

分析該需求可得知,文章一張表,相關商品一張表,相關商品和文章的關聯在一張關聯表中,因此當文章去查詢相關商品時,就無法單單根據文章的主鍵id去查詢,而是要根據關聯表中文章的id和相關商品id來進行判斷。

1

class

article

1

class

articlecommodityrel

1

<

resultmap

class

="article"

id="baseresult"

>

2<

result

property

="id"

column

="id"

/>

3<

result

property

="articlecommmodityrels"

column

="id"

select

="commdityass.findbyid"

/>

4resultmap

>

那麼遇到上述情況時:需要傳遞多個引數進行關聯查詢。又該如何書寫呢?

1

<

resultmap

class

="article"

id="baseresult"

>

2<

result

property

="id"

column

="id"

/>

3<

result

property

="type"

column

="type"

/>

4<

result

property

="articlecommodityrels"

column

=""select

="commodityass.findbyidandtype"

/>

5resultmap

>

沒錯,只是將result的column屬性由column="id"改為column=""即可,這樣ibatis就會將這兩個字段對應的值傳遞給commodityass.findbyidandtype對應的sql語句,從而實現了組合鍵查詢,其具體形式為:。

其中需要注意的是,param1..n是可以不用寫的,只要對應查詢語句的變數即可,但建議寫上,因為這樣即保證了可讀性又保證了對應的引數值的匹配正確性,另外使用{}表示傳遞過去的是個map型別,這一點很重要,column="id"和column=""是完全不同的

判斷組合鍵

getasynckeystate查詢指定鍵的實時狀態 使用後發現兩者的區別 以組合鍵ctrl a為例 if nchar 0x041 getkeystate vk control 0x8000 ctrl a 的效果是按下ctrl和a,實現指定的操作 只有先按下ctrl然後按a或者同時按下二者,才能執行...

電腦組合鍵

電腦高手最常用的五個組合鍵 winkey d 這是高手最常用的第一快捷組合鍵。這個快捷鍵組合可以將桌面上的所有視窗瞬間最小化,無論是聊天的視窗還是遊戲的視窗,只要再次按下這個組合鍵,剛才的所有視窗都回來了,而且啟動的也正是你最小化之前在使用的視窗!winkey e 當你需要開啟windows檔案總管...

django drf框架,外來鍵關聯查詢

1 資料庫modelclass menu models.model menuid models.bigautofield primary key true menucode models.charfield max length 16,default verbose name 選單code menu...