一對一對映:
association 標籤的巢狀查詢:
select
id,username,
useremail,
user_role.role_id
from user
inner join user_role
on user_role.role_id = user.id
where user.id = #
select id,
role_name
from role
where id = #
這裡還可以將 fetchtype 設定為 lazy. 這樣設定之後, 只有當呼叫user#getrole()
方法才會執行巢狀查詢去獲取資料. 這時需要將在
mybatis-config.xml 中增加:
mybatis 還提供了 lazyloadtriggermethods 來定義某些方法, 當呼叫這些方法時, 會載入全部的延遲載入資料.
一對多對映:
鑑別器對映:
```
select
id,username,
useremail,
role.id as "role.id",
role.role_name as "role.rolename"
from user
inner join user_role
on user_role.role_id = user.id
inner join role
on role.id = user_role.role_id
where user.id = #
```
當使用者的 enabled 值為 1 的時候表示使用者被啟用, 0 的時候表示使用者不可用. 當使用者可用時, 使用 userrolemap 對映, 可以獲取到使用者資訊和角色資訊; 當使用者不可以用時, 使用 usermap 只能獲取到使用者資訊.
參考:
[1] : mybatis從入門到精通
mybatis高階 輸入對映和輸出對映
首先是輸入型別,輸入型別分為以下幾種 1.基本型別。2.pojo物件型別。3.pojo包裝物件。所謂的包裝物件,可以理解為,乙個物件裡面包含著另外乙個物件。簡單輸入型別,比較簡單。在傳入引數的時候,直接將引數型別配置到parametertype中,如下 select from user where ...
Mybatis之高階對映以及延遲載入
場景 查詢寵物資訊,關聯查詢類別資訊 通過外來鍵去查詢另乙個表 資料庫 pets表 id,name,birth date,type id types表 id,name 實體類 pets private int id private string name private date birthdate...
mybatis表高階查詢對映關係及理解
一對一 一對多list detaillist屬性的型別,orderdetail order類中orderdetails屬性泛型型別 list list orderdetails屬性型別 detail id order表裡orderdetail裡的detail id欄位 通過sql語句將orderde...