MyBatis高階對映之 一對一(一對多)關聯對映

2021-05-26 17:28:48 字數 1197 閱讀 3001

在hibernate中可以進行一對一,多對一,一對多,多對多,mybatis中也可以實現這種對映,但是對映就顯得比較麻煩了,下面看乙個一對一的例子,學了hibernate都知道其實一對一跟一對多的原理其實是一致的,所以也是一對多的例子:

首先配置sqlmapconfig.xml:

<?xml version="1.0" encoding="utf-8" ?>

public "- config 3.0//en"

"">

<?xml version="1.0" encoding="utf-8" ?>

insert into t_person(id,t_name,age,birthday) values(#,#,#,#)

select * from t_person where id=# 

<?xml version="1.0" encoding="utf-8" ?>

insert into t_idcard(number,person_id) values(#,#)

--!>

select

i.id as i_id,

i.number as i_number,

p.id as p_id,

p.t_name as p_name,

p.age as p_age,

p.birthday as p_birthday

from

t_idcard  i left outer join t_person p on i.person_id = p.id

where i.id=#

分別測試n+1的那個對映,和不會出現n+1的對映:

privatesqlsessionfactory factory;

publictestassociation()catch(ioexception e)

}public voidtestfindbyid()catch(exception e)finally

}public voidtestfindbyid2()catch(exception e)finally

}

mybatis之一對一,一對多

resulttype 直接表示返回型別 基本資料型別 引用資料型別 resultmap 對外部resultmap 資料庫字段資訊和物件屬性不一樣 複雜的聯合查詢,自由控制對映結果 注 它們兩個不能同時存在 association select from class c,teacher t where...

Mybatis 一對一關係對映

一對一關係 使用人和身份證為例 實體類 person端 用這一端來維護關係 private integer id private string name private integer cid private card card 生成對應的set,get方法 card端 private intege...

mybatis一對一對映配置詳解

聽說mybatis一對一有三種寫法,今天我試了一下。為了偷懶,我直接就拿使用者許可權選單裡的選單表和選單與許可權的中間表做實現,他們原來是多對多的關係,這邊我假設這兩張表是一對一。表 gl role men id,role id,menu id 實體類 glrolemenumodel private...