天天看點

mybatis-02 Mybatis的CRUD和其它基本操作

目錄

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注入了。