




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
第MyBatis圖文并茂講解注解開發(fā)一對一查詢目錄MyBatis的注解實現(xiàn)復(fù)雜映射開發(fā)一對一查詢一對一查詢的模型一對一查詢的語句創(chuàng)建PersonMapper接口使用注解配置Mapper測試類一對一配置總結(jié)
MyBatis的注解實現(xiàn)復(fù)雜映射開發(fā)
實現(xiàn)復(fù)雜關(guān)系映射之前我們可以在映射文件中通過配置來實現(xiàn),使用注解開發(fā)后,我們可以使用@Results注解,@Result注解,@One注解,@Many注解組合完成復(fù)雜關(guān)系的配置
一對一查詢
一對一查詢的模型
一對一查詢的需求:查詢一個用戶信息,與此同時查詢出該用戶對應(yīng)的身份證信息
一對一查詢的語句
創(chuàng)建數(shù)據(jù)庫:
------------------------------
--Tablestructureforcard
------------------------------
DROPTABLEIFEXISTS`card`;
CREATETABLE`card`(
`id`int(11)NOTNULLAUTO_INCREMENT,
`number`varchar(30)CHARACTERSETutf8mb4COLLATEutf8mb4_unicode_ciNULLDEFAULTNULL,
`pid`int(11)NULLDEFAULTNULL,
PRIMARYKEY(`id`)USINGBTREE,
INDEX`cp_fk`(`pid`)USINGBTREE
)ENGINE=MyISAMAUTO_INCREMENT=4CHARACTERSET=utf8mb4COLLATE=utf8mb4_unicode_ciROW_FORMAT=Dynamic;
------------------------------
--Recordsofcard
------------------------------
INSERTINTO`card`VALUES(1,'12345',1);
INSERTINTO`card`VALUES(2,'23456',2);
INSERTINTO`card`VALUES(3,'34567',3);
------------------------------
--Tablestructureforclasses
------------------------------
DROPTABLEIFEXISTS`classes`;
CREATETABLE`classes`(
`id`int(11)NOTNULLAUTO_INCREMENT,
`NAME`varchar(20)CHARACTERSETutf8mb4COLLATEutf8mb4_unicode_ciNULLDEFAULTNULL,
PRIMARYKEY(`id`)USINGBTREE
)ENGINE=MyISAMAUTO_INCREMENT=3CHARACTERSET=utf8mb4COLLATE=utf8mb4_unicode_ciROW_FORMAT=Dynamic;
------------------------------
--Recordsofclasses
------------------------------
INSERTINTO`classes`VALUES(1,'極地一班');
INSERTINTO`classes`VALUES(2,'極地二班');
------------------------------
--Tablestructureforcourse
------------------------------
DROPTABLEIFEXISTS`course`;
CREATETABLE`course`(
`id`int(11)NOTNULLAUTO_INCREMENT,
`NAME`varchar(20)CHARACTERSETutf8mb4COLLATEutf8mb4_unicode_ciNULLDEFAULTNULL,
PRIMARYKEY(`id`)USINGBTREE
)ENGINE=MyISAMAUTO_INCREMENT=3CHARACTERSET=utf8mb4COLLATE=utf8mb4_unicode_ciROW_FORMAT=Dynamic;
------------------------------
--Recordsofcourse
------------------------------
INSERTINTO`course`VALUES(1,'語文');
INSERTINTO`course`VALUES(2,'數(shù)學(xué)');
------------------------------
--Tablestructureforperson
------------------------------
DROPTABLEIFEXISTS`person`;
CREATETABLE`person`(
`id`int(11)NOTNULLAUTO_INCREMENT,
`NAME`varchar(20)CHARACTERSETutf8mb4COLLATEutf8mb4_unicode_ciNULLDEFAULTNULL,
`age`int(11)NULLDEFAULTNULL,
PRIMARYKEY(`id`)USINGBTREE
)ENGINE=MyISAMAUTO_INCREMENT=4CHARACTERSET=utf8mb4COLLATE=utf8mb4_unicode_ciROW_FORMAT=Dynamic;
------------------------------
--Recordsofperson
------------------------------
INSERTINTO`person`VALUES(1,'張三',23);
INSERTINTO`person`VALUES(2,'李四',24);
INSERTINTO`person`VALUES(3,'王五',25);
------------------------------
--Tablestructureforstu_cr
------------------------------
DROPTABLEIFEXISTS`stu_cr`;
CREATETABLE`stu_cr`(
`id`int(11)NOTNULLAUTO_INCREMENT,
`sid`int(11)NULLDEFAULTNULL,
`cid`int(11)NULLDEFAULTNULL,
PRIMARYKEY(`id`)USINGBTREE,
INDEX`sc_fk1`(`sid`)USINGBTREE,
INDEX`sc_fk2`(`cid`)USINGBTREE
)ENGINE=MyISAMAUTO_INCREMENT=5CHARACTERSET=utf8mb4COLLATE=utf8mb4_unicode_ciROW_FORMAT=Fixed;
------------------------------
--Recordsofstu_cr
------------------------------
INSERTINTO`stu_cr`VALUES(1,1,1);
INSERTINTO`stu_cr`VALUES(2,1,2);
INSERTINTO`stu_cr`VALUES(3,2,1);
INSERTINTO`stu_cr`VALUES(4,2,2);
------------------------------
--Tablestructureforstudent
------------------------------
DROPTABLEIFEXISTS`student`;
CREATETABLE`student`(
`id`int(11)NOTNULLAUTO_INCREMENT,
`NAME`varchar(30)CHARACTERSETutf8mb4COLLATEutf8mb4_unicode_ciNULLDEFAULTNULL,
`age`int(11)NULLDEFAULTNULL,
`cid`int(11)NULLDEFAULTNULL,
PRIMARYKEY(`id`)USINGBTREE,
INDEX`cs_fk`(`cid`)USINGBTREE
)ENGINE=MyISAMAUTO_INCREMENT=5CHARACTERSET=utf8mb4COLLATE=utf8mb4_unicode_ciROW_FORMAT=Dynamic;
------------------------------
--Recordsofstudent
------------------------------
INSERTINTO`student`VALUES(1,'張三',23,1);
INSERTINTO`student`VALUES(2,'李四',24,1);
INSERTINTO`student`VALUES(3,'王五',25,2);
INSERTINTO`student`VALUES(4,'趙六',26,2);
SETFOREIGN_KEY_CHECKS=1;
對應(yīng)的sql語句:
SELECT*FROMcard;
SELECT*FROMpersonWHEREid=#{id};
創(chuàng)建PersonMapper接口
publicinterfacePersonMapper{
//根據(jù)id查詢
@Select("SELECT*FROMpersonWHEREid=#{id}")
publicabstractPersonselectById(Integerid);
}
使用注解配置Mapper
publicinterfaceCardMapper{
//查詢?nèi)?/p>
@Select("SELECT*FROMcard")
@Results({
@Result(column="id",property="id"),
@Result(column="number",property="number"),
@Result(
property="p",//被包含對象的變量名
javaType=Person.class,//被包含對象的實際數(shù)據(jù)類型
column="pid",//根據(jù)查詢出的card表中的pid字段來查詢person表
one、@One一對一固定寫法
select屬性:指定調(diào)用哪個接口中的哪個方法
one=@One(select="com.yyl.one_to_one.PersonMapper.selectById")
publicabstractListCardselectAll();
}
測試類
publicclassTest01{
@Test
publicvoidselectAll()throwsException{
//1.加載核心配置文件
InputStreamis=Resources.getResourceAsStream("MyBatisConfig.xml");
//2.獲取SqlSession工廠對象
SqlSessionFactorysqlSessionFactory=newSqlSessionFactoryBuilder().build(is);
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 網(wǎng)絡(luò)瓶頸排查與解決試題及答案
- 系統(tǒng)集成工程師的技能要求試題及答案
- 西游記測試題及答案填空50個
- 多媒體行業(yè)研究方法考題及答案
- 食物中毒試題及答案解析
- 行政崗招聘試題及答案
- 臨床輸血安全試題及答案
- 快檢員試題及答案大全
- 社會工作者如何處理跨文化問題試題及答案
- 中級社會工作者考試模擬訓(xùn)練試題及答案
- 《電氣與PLC控制技術(shù)》課件-三相異步電動機順序起動逆序停止PLC控制
- 【MOOC】健康傳播:基礎(chǔ)與應(yīng)用-暨南大學(xué) 中國大學(xué)慕課MOOC答案
- 璞泰來公司成本費用核算制度優(yōu)化設(shè)計
- 麻醉科建設(shè)發(fā)展規(guī)劃
- 木工工程分包合同模版
- 合作框架協(xié)議戰(zhàn)略
- 設(shè)備工程師招聘筆試題及解答(某大型國企)2025年
- 四川省成都市2024年小升初英語試卷(含答案)
- 渠道襯砌施工方案(渠道預(yù)制混凝土塊)
- 02S515排水檢查井圖集
- 《糖的變化(含練習(xí))》參考課件
評論
0/150
提交評論