輸入引數 : paramtertype
1. 型別為簡單型別(8個基本型別 + string)
a. # $ , 其中的識別符號只能是value
b. #{}自動給string型別加上'' (自動型別轉換) ;${} 原樣輸出 但是適合於 動態排序 (動態字段)
select * from student where name = #
select * from student where name = '$'
select * from student order by $ asc
c. #{} 可以防止sql注入
${} 不防止
#{},${} 相同之處:
都可以 獲取物件的值 (巢狀型別物件)
2.型別為物件型別#$
輸入物件為hashmap:
例子:
select * from student where id = # or age = #
hashmapmap = new hashmap();
map.put("age", 18);
map.put("id", "1");
輸出引數resulttype
輸出引數型別resulttype
1. 簡單型別(8個基本+string)
2. 輸出引數為實體物件型別
3. 輸出引數為實體物件型別的集合:雖然輸出型別為集合 但是resulttype依然寫 集合的元素型別(resulttype = 「student」)
4. 輸出引數型別為hashmap
--hashmap本身是乙個集合 可以存放多個元素
但是根據提示發現 返回值為hashmap時 查詢的結果只能是1個學生(id,name)
-->結論:乙個hashmap 對應乙個學生的多個元素(多個屬性) 【乙個map存乙個學生】,所以得是集合
輸出引數型別為hashmap 例子
select * from student
//輸出型別是hashmap的查詢
public static void outhashmap() throws ioexception
輸出引數型別是resultmap的例子
實體類的屬性、資料表的字段:型別不同時、名字不同時
這個列子只是名字不同時
select * from student where id = #
注意:當屬性名 和欄位名 不一致時 除了使用resultmap以外 也可以使用resulttype 和 hashmap
例子:
select id "sid" ,name "sname" , age "sage" , grade "sgrade" from student where id= #
Mybatis學習系列 延遲載入
舉個例子 如果查詢訂單並且關聯查詢使用者資訊。如果先查詢訂單資訊即可滿足要求,當我們需要查詢使用者資訊時再查詢使用者資訊。把對使用者資訊的按需去查詢就是延遲載入。所以延遲載入即先從單錶查詢 需要時再從關聯表去關聯查詢,大大提高資料庫效能,因為查詢單錶要比關聯查詢多張表速度要快。我們來對比一下 關聯查...
mybatis學習筆記三之mybatis外掛程式
一 外掛程式介紹 一般情況下,開源框架都會提供外掛程式或其他形式的擴充套件點,供開發者自行擴充套件。一是增加了框架的靈活性 二是開發者可以結合實際需求,對框架進行擴充套件。以mybatis為例,我們可基於mybatis外掛程式機制實現分頁 分表 監控等功能,在無形中增強功能。二 mybatis外掛程...
MyBatis學習總結(三)
一 連線資料庫的配置單獨放在乙個properties檔案中 1 在src目錄下新建乙個db.properties檔案,在db.properties檔案編寫連線資料庫需要使用到的資料庫驅動,連線url位址,使用者名稱,密碼 driver com mysql jdbc driver url jdbc m...