在說級聯屬性查詢之前,先把需要的表和資料建立好。
/**建立員工表*/
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...