mybaits中的級聯分為三種:
鑑別器:根據某些條件決定採用具體的實現方案
一對一:比如學生和學生證
一對多:比如班主任和學生
鑑別器配置:
select id,role_name ,note as note_ from t_role where id = #
測試程式:
public class test
}
測試結果
一對一級聯配置:
select id ,role_name as rolename ,note from t_role where id = #
這裡要注意一下:association中的column對應的是t_role表中的屬性,即以該屬性為條件查詢對應的user,響應的如果不在resultmap中配置作為依據的列,那麼其值就為預設值,所以如果需要要配置,這裡的id配置了,所以可以取到id,否則將取到預設值0
測試**:
public class test
}
一對多級聯配置:
select name,age,hobbys from users where name = #
select id ,role_name as rolename ,note from t_role where id = #
role結構:
public class role
測試:
public class test
}
n+1問題:如果現在有n個關聯關係完成了級聯,那麼只要再加入乙個關聯關係,就變成了n+1個級聯,所有的級聯sql都被執行,當我們需要的資料不那麼多的時候,就會浪費效能
解決方案:使用延遲載入
當第乙個引數設定為true時,就會將將所有的關聯資料都查出來,設為true時,只會查出當前sql的資料,至於關聯資料則不會查詢,當呼叫關聯資料的時候就會再次查詢
一級快取和二級快取問題:
一級快取就是對同乙個物件進行兩次獲取,那麼sql就執行一次,對於不同的sqlsession,需要乙個執行了commit操作才會開啟一級快取,一級快取實在sqlsession層面的
解決Mybatis中result標籤識別不了的情況
目錄 有個user類 在mybatis result標籤中這樣對映 這是就會發現proper程式設計客棧ty name 這個報紅 這是因為大寫不識別的原因,大寫開頭 它會變成 l 將name 重新www.cppcns.com寫成name就可以 id 和 re 都將乙個列的值對映到乙個簡單資料型別 字...
struts框架中的result
作為乙個剛剛進入開發行業的新人,我現在所接觸的服務端基本只和兩個地方打交道,第一是移動端,第二是web前端,通常對於移動端來講,我只需要告訴他,他拿到的資料是什麼,他存的資料成沒成功,那麼為了更加方便的和他溝通,我經常會使用returncode和returnmsg,來把在後台發生的事情告訴他,至於他...
Struts中配置的result
在struts.xml配置檔案中遇到了param,有點迷糊,上網查了查 似乎明白些了 jeecms loginframeinput 這裡的action 是log,他包含了登陸和退出,當系統在登入的時候就直接返回 就可以了 在退出的時候需要返回到登陸頁面,所以退出的時候是 到 action的,到act...