目錄
mybatis-02 mybatis的CRUD和其它基本操作
3 CRUD
select根據姓使用者id查找使用者的全部資訊
insert
根據字段資訊插入新的使用者
根據對象插入新的使用者
update根據使用者對象更新
delete根據使用者ID删除
4 使用map傳參
5 模糊查詢
再次強調!!!xml 檔案中的 namespqce 中的包名要和 mapper 接口保持一緻!
預設條件下除查詢之外的操作都需要送出!!!可以手動在建立 sqlSession 的時候通過構造器修改成自動送出。
先來看看我們在 mapper 中編寫的顯而易見的一段 sql 的内容:
第一眼望去就看了我們的 sql 語句,嘻嘻。然後就是一些個指派語句,對于這些被指派的語句,最最最常見的有:
名稱
意義
id
對應接口中的方法名
resultType
傳回值類型(全限定)
parameterType
參數類型(全限定)
……
還可以使用<code>#{參數名}</code>的形式來直接使用參數,要注意,參數名可以是 pojo 類的 field,也可以是接口方法簽名的參數。另外,出了查詢之外的操作都需要通過 sqlSession 的 commit 進行送出,這麼說有些模糊,咱們直接上代碼:
xml 代碼:
java 代碼:
執行結果:
xml 檔案:
這次的 id,name,pwd 都是從傳入的 User 對象中擷取的。
如果在這裡遇到了插入資料庫的字段為亂碼的情況,請從兩個方面檢查:IDE 環境編碼和 MySQL 編碼。
還有一點就是 mybatis 不支援 id 重載,也就是一條 sql 隻能對應一個 id,一個 id 隻能對應一條 sql,而不能根據傳入的參數類型等資訊進行重載!
參數也是從傳入的使用者對象中擷取。
假如實體類中的字段過多,可以考慮使用 map 傳遞局部參數。因為如果直接傳遞所有參數的話會顯得非常臃腫,畢竟誰也不喜歡擱函數實參那裡擺一堆沒有 IDE 提示都不知道是啥的變量吧。
使用模糊查詢時,要注意防止sql注入。下面兩種方式都可行,且都是安全的,因為隻要使用了#{}就可以防止sql注入了。