MyBatis-学习笔记09【09.Mybatis的多表操作】
- Java后端 學習路線 筆記匯總表【黑馬程序員】
目錄
1 mybatis表之間關系分析
2 完成account表的建立及實現單表查詢
2.1、創建Account數據表
2.2、配置User實體類
2.3、配置Account實體類
3 完成account的一對一操作-通過寫account的子類方式查詢
4 完成account一對一操作-建立實體類關系的方式
5 完成user的一對多查詢操作
6 分析mybatis多對多的步驟并搭建環境
7 mybatis多對多準備角色表的實體類和映射配置
7.1、建立多對多數據表
7.2、實體類和映射配置
8 mybatis多對多操作-查詢角色獲取角色下所屬用戶信息
9 mybatis多對多操作-查詢用戶獲取用戶所包含的角色信息
1 mybatis表之間關系分析
1、連接池
2、mybatis中的連接池
3、mybatis中的事務
4、mybatis中的多表查詢
????表之間的關系有幾種:一對多、多對一、一對一、多對多
????舉例:
????????用戶和訂單就是一對多
????????訂單和用戶就是多對一:一個用戶可以下多個訂單、多個訂單屬于同一個用戶
????????人和身份證號就是一對一:一個人只能有一個身份證號、一個身份證號只能屬于一個人
????????老師和學生之間就是多對多:一個學生可以被多個老師教過、一個老師可以交多個學生
????特例:如果拿出每一個訂單,他都只能屬于一個用戶。所以Mybatis就把多對一看成了一對一。
2 完成account表的建立及實現單表查詢
1、連接池
2、mybatis中的連接池
3、mybatis中的事務
4、mybatis中的多表查詢
?? ?表之間的關系有幾種:一對多、多對一、一對一、多對多
?? ?舉例:
?? ??? ?用戶和訂單就是一對多
?? ??? ?訂單和用戶就是多對一:一個用戶可以下多個訂單、多個訂單屬于同一個用戶
?? ??? ?人和身份證號就是一對一:一個人只能有一個身份證號、一個身份證號只能屬于一個人
?? ??? ?老師和學生之間就是多對多:一個學生可以被多個老師教過、一個老師可以交多個學生
?? ?特例:如果拿出每一個訂單,他都只能屬于一個用戶。所以Mybatis就把多對一看成了一對一。
?? ?mybatis中的多表查詢:
?? ??? ?示例:用戶和賬戶
?? ??? ??? ?一個用戶可以有多個賬戶、一個賬戶只能屬于一個用戶(多個賬戶也可以屬于同一個用戶)
?? ??? ?步驟:
?? ??? ??? ?1、建立兩張表:用戶表、賬戶表
?? ??? ??? ??? ?讓用戶表和賬戶表之間具備一對多的關系:需要使用外鍵在賬戶表中添加
?? ??? ??? ?2、建立兩個實體類:用戶實體類和賬戶實體類
?? ??? ??? ??? ?讓用戶和賬戶的實體類能體現出來一對多的關系
?? ??? ??? ?3、建立兩個配置文件:用戶的配置文件、賬戶的配置文件
?? ??? ??? ?4、實現配置:
?? ??? ??? ??? ?當我們查詢用戶時,可以同時得到用戶下所包含的賬戶信息
?? ??? ??? ??? ?當我們查詢賬戶時,可以同時得到賬戶的所屬用戶信息
2.1、創建Account數據表
?
DROP TABLE IF EXISTS `account`;CREATE TABLE `account` (`ID` int(11) NOT NULL COMMENT '編號',`UID` int(11) default NULL COMMENT '用戶編號',`MONEY` double default NULL COMMENT '金額',PRIMARY KEY (`ID`),KEY `FK_Reference_8` (`UID`),CONSTRAINT `FK_Reference_8` FOREIGN KEY (`UID`) REFERENCES `user` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8;insert into `account`(`ID`,`UID`,`MONEY`) values (1,46,1000),(2,45,1000),(3,46,2000);2.2、配置User實體類
?
2.3、配置Account實體類
3 完成account的一對一操作-通過寫account的子類方式查詢
?
4 完成account一對一操作-建立實體類關系的方式
?
?
5 完成user的一對多查詢操作
?
6 分析mybatis多對多的步驟并搭建環境
1、連接池
2、mybatis中的連接池
3、mybatis中的事務
4、mybatis中的多表查詢
?? ??? ?示例:用戶和角色
?? ??? ??? ?一個用戶可以有多個角色
?? ??? ??? ?一個角色可以賦予多個用戶
?? ??? ?步驟:
?? ??? ??? ?1、建立兩張表:用戶表、角色表
?? ??? ??? ??? ?讓用戶表和角色表具有多對多的關系。需要使用中間表,中間表中包含各自的主鍵,在中間表中是外鍵。
?? ??? ??? ?2、建立兩個實體類:用戶實體類和角色實體類
?? ??? ??? ??? ?讓用戶和角色的實體類能體現出來多對多的關系
?? ??? ??? ??? ?各自包含對方一個集合引用
?? ??? ??? ?3、建立兩個配置文件
?? ??? ??? ??? ?用戶的配置文件
?? ??? ??? ??? ?角色的配置文件
?? ??? ??? ?4、實現配置:
?? ??? ??? ??? ?當我們查詢用戶時,可以同時得到用戶所包含的角色信息
?? ??? ??? ??? ?當我們查詢角色時,可以同時得到角色的所賦予的用戶信息
7 mybatis多對多準備角色表的實體類和映射配置
7.1、建立多對多數據表
DROP TABLE IF EXISTS `role`;CREATE TABLE `role` (`ID` int(11) NOT NULL COMMENT '編號',`ROLE_NAME` varchar(30) default NULL COMMENT '角色名稱',`ROLE_DESC` varchar(60) default NULL COMMENT '角色描述',PRIMARY KEY (`ID`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8;insert into `role`(`ID`,`ROLE_NAME`,`ROLE_DESC`) values (1,'院長','管理整個學院'),(2,'總裁','管理整個公司'),(3,'校長','管理整個學校');DROP TABLE IF EXISTS `user_role`;CREATE TABLE `user_role` (`UID` int(11) NOT NULL COMMENT '用戶編號',`RID` int(11) NOT NULL COMMENT '角色編號',PRIMARY KEY (`UID`,`RID`),KEY `FK_Reference_10` (`RID`),CONSTRAINT `FK_Reference_10` FOREIGN KEY (`RID`) REFERENCES `role` (`ID`),CONSTRAINT `FK_Reference_9` FOREIGN KEY (`UID`) REFERENCES `user` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8;insert into `user_role`(`UID`,`RID`) values (41,1),(45,1),(41,2);7.2、實體類和映射配置
?
8 mybatis多對多操作-查詢角色獲取角色下所屬用戶信息
?
9 mybatis多對多操作-查詢用戶獲取用戶所包含的角色信息
?
總結
以上是生活随笔為你收集整理的MyBatis-学习笔记09【09.Mybatis的多表操作】的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: MyBatis-学习笔记08【08.动态
- 下一篇: MyBatis-学习笔记10【10.JN