Hibernate學(xué)習(xí)(多對多的操作)

多對多映射配置

以用戶和角色為例演示阅束、
第一步 創(chuàng)建實體類呼胚,用戶和角色
第二步 讓兩個實體類之間互相表示
(1)一個用戶里面表示所有角色,使用set集合


1.png

(2)一個角色有多個用戶息裸,使用set集合


2.png

第三步 配置映射關(guān)系
(1)基本配置
(2)配置多對多關(guān)系
在用戶里面表示所有角色蝇更,使用set標簽
3.png

在角色里面表示所有用戶,使用set標簽

4.png

第四步 在核心配置文件中引入映射文件

5.png

多對多級聯(lián)保存

根據(jù)用戶保存角色
第一步 在用戶配置文件中set標簽進行配置呼盆,cascade值save-update

6.png

第二步 寫代碼實現(xiàn)
(1)創(chuàng)建用戶和角色對象年扩,把角色放到用戶里面,最終保存用戶就可以了

//演示多對多修級聯(lián)保存
    @Test
    public void testSave() {
        SessionFactory sessionFactory = null;
        Session session = null;
        Transaction tx = null;
        try {
            //得到sessionFactory
            sessionFactory = HibernateUtils.getSessionFactory();
            //得到session
            session = sessionFactory.openSession();
            //開啟事務(wù)
            tx = session.beginTransaction();
            
            //添加兩個用戶访圃,為每個用戶添加兩個角色
            //1 創(chuàng)建對象
            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 r1 = new Role();
            r1.setRole_name("總經(jīng)理");
            r1.setRole_memo("總經(jīng)理");
            
            Role r2 = new Role();
            r2.setRole_name("秘書");
            r2.setRole_memo("秘書");
            
            Role r3 = new Role();
            r3.setRole_name("保安");
            r3.setRole_memo("保安");
            
            //2 建立關(guān)系厨幻,把角色放到用戶里面
            // user1 -- r1/r2
            user1.getSetRole().add(r1);
            user1.getSetRole().add(r2);
            
            // user2 -- r2/r3
            user2.getSetRole().add(r2);
            user2.getSetRole().add(r3);
            
            //3 保存用戶
            session.save(user1);
            session.save(user2);
            
            //提交事務(wù)
            tx.commit();

        }catch(Exception e) {
            tx.rollback();
        }finally {
            session.close();
            //sessionFactory不需要關(guān)閉
            sessionFactory.close();
        }
    }

多對多級聯(lián)刪除(了解)

第一步 在set標簽進行配置,cascade值delete
第二步 刪除用戶

維護第三張表關(guān)系

  1. 用戶和角色多對多關(guān)系,維護關(guān)系通過第三張表維護
  2. 讓某個用戶有某個角色
    第一步 根據(jù)id查詢用戶和角色
    第二步 把角色放到用戶里面
    (1)把角色對象放到用戶set集合
  3. 讓某個用戶沒有某個角色
    第一步 根據(jù)id查詢用戶和角色
7.png

第二步 從用戶里面把角色去掉
(1)從set集合里面把角色移除

8.png
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末况脆,一起剝皮案震驚了整個濱河市饭宾,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌漠另,老刑警劉巖捏雌,帶你破解...
    沈念sama閱讀 222,627評論 6 517
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異笆搓,居然都是意外死亡性湿,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 95,180評論 3 399
  • 文/潘曉璐 我一進店門满败,熙熙樓的掌柜王于貴愁眉苦臉地迎上來肤频,“玉大人,你說我怎么就攤上這事算墨∠模” “怎么了?”我有些...
    開封第一講書人閱讀 169,346評論 0 362
  • 文/不壞的土叔 我叫張陵净嘀,是天一觀的道長报咳。 經(jīng)常有香客問我,道長挖藏,這世上最難降的妖魔是什么暑刃? 我笑而不...
    開封第一講書人閱讀 60,097評論 1 300
  • 正文 為了忘掉前任,我火速辦了婚禮膜眠,結(jié)果婚禮上岩臣,老公的妹妹穿的比我還像新娘。我一直安慰自己宵膨,他們只是感情好架谎,可當我...
    茶點故事閱讀 69,100評論 6 398
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著辟躏,像睡著了一般谷扣。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上鸿脓,一...
    開封第一講書人閱讀 52,696評論 1 312
  • 那天抑钟,我揣著相機與錄音,去河邊找鬼野哭。 笑死在塔,一個胖子當著我的面吹牛,可吹牛的內(nèi)容都是我干的拨黔。 我是一名探鬼主播蛔溃,決...
    沈念sama閱讀 41,165評論 3 422
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了贺待?” 一聲冷哼從身側(cè)響起徽曲,我...
    開封第一講書人閱讀 40,108評論 0 277
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎麸塞,沒想到半個月后秃臣,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 46,646評論 1 319
  • 正文 獨居荒郊野嶺守林人離奇死亡哪工,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 38,709評論 3 342
  • 正文 我和宋清朗相戀三年奥此,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片雁比。...
    茶點故事閱讀 40,861評論 1 353
  • 序言:一個原本活蹦亂跳的男人離奇死亡稚虎,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出偎捎,到底是詐尸還是另有隱情蠢终,我是刑警寧澤,帶...
    沈念sama閱讀 36,527評論 5 351
  • 正文 年R本政府宣布茴她,位于F島的核電站寻拂,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏丈牢。R本人自食惡果不足惜兜喻,卻給世界環(huán)境...
    茶點故事閱讀 42,196評論 3 336
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望赡麦。 院中可真熱鬧,春花似錦帕识、人聲如沸泛粹。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,698評論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽晶姊。三九已至,卻和暖如春伪货,著一層夾襖步出監(jiān)牢的瞬間们衙,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,804評論 1 274
  • 我被黑心中介騙來泰國打工碱呼, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留蒙挑,地道東北人。 一個月前我還...
    沈念sama閱讀 49,287評論 3 379
  • 正文 我出身青樓愚臀,卻偏偏與公主長得像忆蚀,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 45,860評論 2 361

推薦閱讀更多精彩內(nèi)容

  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理馋袜,服務(wù)發(fā)現(xiàn)男旗,斷路器,智...
    卡卡羅2017閱讀 134,715評論 18 139
  • Android 自定義View的各種姿勢1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 172,323評論 25 707
  • 1. 簡介 1.1 什么是 MyBatis 欣鳖? MyBatis 是支持定制化 SQL察皇、存儲過程以及高級映射的優(yōu)秀的...
    笨鳥慢飛閱讀 5,532評論 0 4
  • 《釜山行》韓國拍的一部喪尸片什荣,或許對于喪尸我們大部分人的認知都來自歐美片。這部沒有過多的講解為何有喪尸师痕,也沒有...
    藍紫瓔珞閱讀 912評論 2 1
  • 先看個例子 發(fā)生了什么 創(chuàng)建空對象 將這個空對象的__proto__成員指向Object函數(shù)(構(gòu)造函數(shù))的prot...
    KrisLeeSH閱讀 317評論 0 0