hibernate學習筆記第三天(2)

此文章爲自己書寫,在Word上做的筆記,然後拷貝到這上邊的,無任何抄襲。另外若是程序有任何問題可以評論,也可私信我。

Hibernate的多對多操作

多對多的映射配置

以用戶和角色爲例
第一步:創建實體類,用戶和角色
第二步:讓兩個實體類之間互相表示
(1)一個用戶裏面表示所有角色用set集合
(2)一個角色有多個用戶,用set集合
第三步:配置映射關係
(1)基本配置
(2)配置多對多的關係
在用戶裏面表示所有的角色,使用set標籤
這裏寫圖片描述
在角色裏面表示所有的用戶,使用set標籤
這裏寫圖片描述
第四步:在覈心配置文件中引入映射文件
這裏寫圖片描述
第五步:測試(執行工具類,看錶是否創建)
這裏寫圖片描述
這裏寫圖片描述

多對多的級聯操作

多對多的級聯保存
根據用戶保存角色
第一步:在用戶配置文件中set標籤進行配置,cascade值save-update
這裏寫圖片描述
第二步:寫代碼實現
(1)創建用戶和角色的對象,把角色放到用戶中去,最終保存用戶就可以了
//添加兩個用戶,爲每個用戶添加兩個角色
//1.創建對象
User user1 = new User();
user1.setUser_name(“lucy”);
user1.setUser_password(“123”);

        User user2 = new User();
        user2.setUser_name("mary");
        user2.setUser_password("456");

        Role role1 = new Role();
        role1.setRole_name("總經理");
        role1.setRole_memo("總經理是");

        Role role2 = new Role();
        role2.setRole_name("祕書");
        role2.setRole_memo("祕書是");

        Role role3 = new Role();
        role3.setRole_name("司機");
        role3.setRole_memo("司機是");

        //2.建立關係,把角色放到用戶中
        // user1 -- role1/role2
        // user2 -- role2/role3
        user1.getRoles().add(role1);
        user1.getRoles().add(role2);
        user2.getRoles().add(role2);
        user2.getRoles().add(role3);

        session.save(user1);
        session.save(user2);

多對多的級聯刪除
第一步:在set標籤中進行配置,cascade值爲delete
這裏寫圖片描述
第二步:刪除用戶(一般不用,這樣的話把三個表所有相關的屬性全部刪除,user與role與第三張表的相關的id全部刪除)
這裏寫圖片描述

維護第三張表

1.用戶與角色是多對多的關係,維護他們的關係是通過第三張表來進行維護
2.讓某個用戶擁有某個角色
第一步:根據id查詢出用戶和角色
第二步:把角色放到用戶裏
(1)把角色對象放到用戶的set集合內
這裏寫圖片描述
3.讓某個用戶沒有某個角色
第一步:根據id查詢出用戶和角色
第二步:從用戶裏面把角色去掉
(1)在set集合內把角色移除
這裏寫圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章