MyBatis對映示例

2021-08-04 23:10:49 字數 1705 閱讀 5698

resultmap 返回結果的對映

resultmap的id是這個對映的名字,可在查詢語句中引用表示此查詢返回該結果:

type是模型物件的類名,也可以寫成別名(簡化作用)

簡化成別名時,需要先註冊別名:

resultmap內部

標籤表示該查詢中涉及的主鍵的對映關係

標籤表示普通資料屬性或字段的對映關係

property表示資料模型類中的屬性名

column表示資料表中的欄位名

表示使用select語句查詢資料的方法

id屬性與dao中的方法相同!

resultmap表示返回結果(因為返回的資料物件可能很複雜,因些需要單獨設定對映)

parametertype表示傳入引數型別(利用hashmap可以傳入一組引數)

sql語句中的標籤

與jstl非常相似

一行的意思是此處會生成乙個where子句(prefix規定的)

如果該子句在組合過程中產生了多作的and|or,則trim會把多作的去掉

以保證sql語句的正確性

會測試相應的條件是否成立,成立則if中的表示式進入sql語句,否則忽略

通過可以動態拼接sql表示式!

$ 與 # 兩者有很大的區別!

$是替換性質的,如sortproperty的值將會出現在 $ 的位置

因此有sql注入的風險

#會變成sql語句中的 ? 引數,? 引數沒有注入風險。

如果傳入到

中的資料是sql語句的欄位名或運算子、關鍵字,則只能使用$

因為使用 # 會變成 ? ,將會造成sql語法錯誤

如 order by ? ? 是錯誤的,因為order by後面應該跟

列名之後是

排序方向的關鍵字

,不能是 ?

表示插入資料的方法

如果資料庫中有自增id,而且還希望在插入資料之後獲得新插入的id值,則需要新增

usegeneratedkeys=」true」 及 keyproperty=」主鍵名」

執行成功後,可以通過

student.getstudentid() 獲取主鍵值,也就是主鍵值會填充到傳入的物件中更新資料

刪除資料

MyBatis 輸出對映

使用resulttype進行輸出對映,只有查詢出來的列名和pojo中的屬性名一致,該列才可以對映成功 如果查詢出來的列名和pojo中的屬性全部不一致,沒有建立pojo物件 如果查詢出來的列名和pojo中的屬性有乙個一致,則建立pojo物件 1.1.1 需求 使用者資訊的綜合資訊查詢列表總數。1.1....

MyBatis關聯對映

mybatis關聯對映 將多個表記錄提取,封裝成具有關聯關係的物件。關係型別 分為單個物件關聯和多個物件關聯 cn user user物件 cn notebook book物件 cn user cn notebook 具有物件關聯關係的物件 book user 乙個book對應乙個user user...

筆記 mybatis對映

namespace resultmap type channel id channelresult result property channelid column channel id result property password column password resultmap selec...