mybatis的級聯屬性 聯合 分步查詢

2021-08-17 12:03:35 字數 1762 閱讀 7500

在說級聯屬性查詢之前,先把需要的表和資料建立好。

/**建立員工表*/

create table tbl_employee(

id int(11) auto_increment primary key,

last_name varchar(25),

gender char(1),

email varchar(255)

);/**建立部門表*/

create table tbl_deptno(

id int(11) primary key auto_increment,

dept_name varchar(255)

);/**在員工表中新增部門id列*/

alter table tbl_employee add column dept_id int(11);

/**設定外來鍵*/

alter table tbl_employee add constraint fk_emp_dept foreign key(dept_id) references tbl_deptno(id);

員工表資料

部門表資料

為兩張表分別建立實體類

public class employee
public class deptno 

現在我們有個需求就是查出某個員工及部門資訊。

//根據員工id查詢

public employee findempanddept(integer id);

}sql對映檔案

1、使用級聯屬性查詢

select

e.id id,

e.last_name lastname,

e.gender gender,

e.email email,

d.id did,

d.dept_name dname

from

bl_employee e

left join tbl_deptno d on e.dept_id = d.id

where e.id=#

2、使用association(聯合)查詢

select

e.id id,

e.last_name lastname,

e.gender gender,

e.email email,

d.id did,

d.dept_name dname

from

bl_employee e

left join tbl_deptno d on e.dept_id = d.id

where e.id=#

3、分步查詢(支援延遲載入)

select 

id,last_name lastname,gender,email,dept_id deptid

from

tbl_employee

where

id=#

MyBatis 中的級聯

mybatis 的級聯分為 3 種。1 鑑別器 discriminator 它是根據某些條件決定採用具體實現類級聯的方案,比如體檢表要根據性別去區分。2 一對一 association 比如學生證和學生就是一對一的級聯,雇員和工牌也是一種一對一的級聯。3 一對多 collection 比如班主任和學...

Mybatis 級聯刪除的實現

需求描述 今日需求是刪除資源時同時刪除與該資源繫結的角色資料,有兩張表,資源表 角色與資源繫結表,級聯刪除的時候有兩種方法 建立表時直接建立約束,當父表刪除資料時資料庫會自動去刪除子表中的資料,通過 實現級聯刪除,先刪除子表資料,然後刪除父表中的資料。通過資料庫實現 可以參考博文 這種方式假如我們要...

mybatis的查詢之間的級聯關係(二)

一對多 collection 可以用兩種方法來執行 1 多表查詢,2 分步查詢 oftype 指明一行的記錄型別,不是返回資料型別 一對多 map 當類上寫了雙向連線 a類包含b類的物件,b類同時也包含a類物件時,在做resultmap時要有乙個跳出迴圈的resultmap,即最少要有兩個resul...