国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 網站 > WEB開發 > 正文

數據庫中表與表之間建立關系(一對多、多對多)

2024-04-27 15:09:55
字體:
來源:轉載
供稿:網友

一、一對多的關系

例:公司與員工的關系,公司為一,公司員工為多,需要在多方建立外鍵指向一方的主鍵。

一對多讓兩個實體類之間相互表示

(1)一個公司里面有多個員工。

PRivate Set<yuangong> yuangongSet=new HashSet<yuangong>();public Set<yuangong> getYuangongSet(){return yuangongSet;}public void setYuangongSet(Set<yuangong> yuangongSet){this.yuangongSet=yuangongSet;}

(2)一個員工只能屬于一個公司

private Gongsi gongsi;public Gongsi getGongsi(){return gongsi;}public void setGongsi(Gongsi gongsi){this.gongsi=gongsi;}

配置一對多的映射關系,在映射文件中配置

(1)在公司映射文件中,表示所有員工

需要使用set標簽表示所有員工set標簽的name屬性需要寫上在公司實體類里面表示員工的set集合名稱,set標簽里面還要包含一個key標簽,key標簽的column屬性需要寫實體類的外鍵屬性名稱。在key標簽的下面還需一個one-to-many標簽,標簽里面的class屬性寫員工實體類的全路徑

(2)在員工映射文件中,表示所屬公司

需要在一干涉文件中添加many-to-one標簽,標簽的name屬性需要寫上員工實體類里面表示公司的對象名稱,標簽的class屬性需要寫上公司類的全路徑,標簽的column屬性需要寫上外鍵屬性名稱

創建核心配置文件,把映射文件引入到核心配置文件中

<mapping resource="實體類配置文件路徑"></mapping>

二、多對多的關系

例:商品與訂單的關系,一個商品可以屬于多個訂單,一個訂單可以有多種商品。        用戶和角色的關系,一個角色可以包括多個用戶,一個用戶可以是多個角色。創建一張用戶表和一張角色表,還需創建一張關系表,關系表至少有兩個外鍵,分別指向兩張表的主鍵。

1、與一對多類似,先是創建實體類,然后讓兩個實體類互相表示。

(1)以訂單和商品為例一個訂單可以有多種商品,使用set集合表示//一個訂單可以有多種商品    private Set<ShangpinEntity> shangpinEntitySet=new HashSet<ShangpinEntity>();    public Set<ShangpinEntity> getShangpinEntitySet() {        return shangpinEntitySet;    }    public void setShangpinEntitySet(Set<ShangpinEntity> shangpinEntitySet) {        this.shangpinEntitySet = shangpinEntitySet;    }一種商品可以屬于多個訂單,使用set集合表示    //一種商品可以屬于多個訂單    private Set<DingdanEntity> dingdanEntitySet=new HashSet<DingdanEntity>();    public Set<DingdanEntity> getDingdanEntitySet() {        return dingdanEntitySet;    }    public void setDingdanEntitySet(Set<DingdanEntity> dingdanEntitySet) {        this.dingdanEntitySet = dingdanEntitySet;    }

2、配置映射關系

(1)基本配置略(2)配置多對多關系都是使用set標簽來表示彼此在訂單配置文件中配置如下標簽<!--name="對應實體類中set集合的名稱" table="第三張表名(關系表)"-->        <set name="shangpinEntitySet" table="dingdan_shangpin">            <!--column="當前映射文件在關系表中外鍵名稱(也就是表當前主鍵)"-->            <key column="did"></key>            <!--class="商品表的實體類全路徑" column="商品表在關系表中的外鍵名稱(也就是商品表的主鍵)"-->            <many-to-many class="domain.ShangpinEntity" column="sid"></many-to-many>        </set>在商品配置文件中配置如下標簽<!--name="對應實體類中set集合的名稱" table="第三張表名(關系表)"-->        <set name="dingdanEntitySet" table="dingdan_shangpin">            <!--column="當前映射文件在關系表中外鍵名稱(也就是表當前主鍵)"-->            <key column="sid"></key>            <!--class="訂單表的實體類全路徑" column="訂單表在關系表中的外鍵名稱(也就是訂單表的主鍵)"-->            <many-to-many class="domain.DingdanEntity" column="did"></many-to-many>        </set>3、在核心配置文件中引入映射文件        <mapping resource="domain/DingdaEntity.hbm.xml"/>        <mapping resource="domain/ShangpinEntity.hbm.xml"/>
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 华安县| 长岭县| 务川| 宜黄县| 凤城市| 青岛市| 尚志市| 海丰县| 两当县| 逊克县| 莱芜市| 和田县| 徐汇区| 临汾市| 宜章县| 宜州市| 湛江市| 绥德县| 鹤峰县| 准格尔旗| 镇雄县| 方山县| 临朐县| 兰溪市| 安仁县| 永川市| 颍上县| 衡阳县| 马关县| 都匀市| 武夷山市| 新安县| 江安县| 泸定县| 平谷区| 鄂伦春自治旗| 吴旗县| 大悟县| 新田县| 白朗县| 如东县|