ibatis實戰之內聯結果對映
面blog,我們給出的示例中都沒有定義任何結果對映(result map),但確實定義了結果類(result class)。這種方式所以可行是因為ibatis的自動結果對映機制,該機制會在對映語句第一次被執行時,迅速地自動建立乙個結果對映,然後將它應用於這條已對映語句。
可以有3種方式來使用這個特徵:單列選擇
,固定多列選擇
和動態多列選擇
。注意:如果你既沒有提供結果對映,也沒有提供結果類,ibatis將執行你的語句但是卻不返回任何東西。
如果只想從某個查詢中獲取單列,就可以使用別名value作為一種快捷方式來完成此目的,這樣就可以不需要定義複雜的結果映**:
select accountid as value from account
list list = sqlmap.queryforlist("account.getallaccountidvalues",null);
該已對映語句返回account表中所有的accountid值,作為簡單的integer物件的list。
如果需要查詢多列,就可以使用自動結果對映來告訴ibatis將列名作為bean的屬性名,或者作為map鍵。(as別名呢?用了它就可以直接將別名作為bean的屬性,或者map的鍵???)
當以這種方式對映到bean時,需要牢記一點:如果所選擇的列在資料庫中存在,但是不存在於你要對映的bean中 你將不會得到任何錯誤或警告,但是也得不到任何資料---這些資料只會靜靜地被忽略。對映到map物件時,也有相似的問題:儘管你仍然可以得到資料,但是這些資料不會在你所期望的地方。
如果你想要一種更加穩健的資料對映方式,請使用外部的結果對映。
除了上述這兩個潛在的問題之外,如果希望讓框架幫你完成對映,並且不在意第一次執行對映時額外的開銷,那麼使用自動對映還是很方便的。
內聯結 外聯結 左聯結 右聯結
1 內聯結 將兩個表中存在聯結關係的字段符合聯結關係的那些記錄形成記錄集的聯結。2 外聯結 分為外左聯結和外右聯結。左聯結a b表的意思 就是將表a中的全部記錄和表b中聯結的字段與表a的聯結字段符合聯結條件的那些記錄形成的記錄集的聯結,這裡注意的是最後出來的記錄集會包括表a的全部記錄。右聯結a b表...
ibatis實戰之插入資料 使用內聯引數對映
ibatis實戰之插入資料 使用內聯引數對映 內聯引數對映通過標記告訴ibatis你想讓它如何將你的輸入引數對映到已對映語句中,這樣你就不需要顯式定義外部引數對映,從而能夠快速地構建已對映語句。以下是乙個使用內聯引數對映的insert語句的示例 insert into account account...
C 之內聯函式
一 目的 提高程式執行速度所做的一項改進。二 內聯函式與常規函式的區別 編譯過程的最終產品是程式 由一組機器語言指令組成。執行程式時作業系統將這些指令載入到計算機記憶體中,因此每條指令都有特有的記憶體位址。計算機隨後逐步執行這些命令。執行到函式呼叫指令時,程式將在函式呼叫後立即儲存該指令的記憶體位址...