在使用ibatis時,會經常遇到關聯查詢,一般有兩種解決方案:
使用**進行關聯查詢
使用ibatis配置檔案進行關聯查詢
使用**進行關聯查詢不作解釋,本次主要是針對ibatis配置檔案進行關聯查詢進行**,如發現有問題或不當之處還請不吝賜教!
對於ibatis配置檔案進行關聯查詢,下面舉乙個例子進行輔助描述:
分析該需求可得知,文章一張表,相關商品一張表,相關商品和文章的關聯在一張關聯表中,因此當文章去查詢相關商品時,就無法單單根據文章的主鍵id去查詢,而是要根據關聯表中文章的id和相關商品id來進行判斷。
1class
article
1class
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...