Mybatis 高階對映

2021-10-01 11:22:27 字數 1149 閱讀 3643

一對一對映:

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...