資源描述:
《Hibernate3.2 官方中文參考手冊(cè)》由會(huì)員上傳分享,免費(fèi)在線(xiàn)閱讀,更多相關(guān)內(nèi)容在行業(yè)資料-天天文庫(kù)。
1、Hibernate入門(mén)1.2.2映射文件映射文件告訴Hibernate,應(yīng)該訪(fǎng)問(wèn)數(shù)據(jù)庫(kù)(database)里面的哪個(gè)表(table)及應(yīng)該使用表里面的哪些字段(column)在hibernate-mapping標(biāo)簽之間,含
2、有一個(gè)class元素。所有的持久化實(shí)體類(lèi)都需要一個(gè)這樣的映射,來(lái)把類(lèi)對(duì)象映射到SQL數(shù)據(jù)庫(kù)里的表。1.2.3Hibernate配置使用一個(gè)XML配置文件來(lái)保存Hibernate的配置信息(比如連接池,數(shù)據(jù)源,用戶(hù)名,密碼)。在這里,我們配置了Hibernate的SessionFactory-----一個(gè)關(guān)聯(lián)于特定數(shù)據(jù)庫(kù)全局的工廠(chǎng)。如果使用多個(gè)數(shù)據(jù)庫(kù),就要用多個(gè),通常把它們放在多個(gè)配置文件中。并將相應(yīng)的映射文件放在Hibernate配置中1.3第二部分----關(guān)聯(lián)映射13.2單向S
3、et-based的關(guān)聯(lián)我們將向Person類(lèi)添加一連串的events。那樣,通過(guò)調(diào)用aPerson.getEvents(),就可以輕松地導(dǎo)航到特定person所參加的events,而不用去執(zhí)行一個(gè)顯示的查詢(xún)。我們使用java的集合類(lèi)(collection):set,因?yàn)閟et不包含重復(fù)的元素及我們無(wú)關(guān)的排序。PublicclassPerson{PrivateSetevents=newHashSet();PublicSetgetEvents(){Returnevents;}PublicvoidsetEvents(S
4、etevents){this.events=evnets;}}對(duì)于多對(duì)多關(guān)聯(lián),需要一個(gè)關(guān)聯(lián)表-PERSON_EVENT。表里面保存person到event的一個(gè)關(guān)聯(lián)。1.3.3使關(guān)聯(lián)工作使一個(gè)類(lèi)與另一個(gè)類(lèi)相關(guān)聯(lián)。Sessonsession=HibernateUtil.getS
5、essionFactory().getCurrentSession();sesseion.beginTransaction();PersionaPerson=(Person)session.load(Person.class,personId);EventanEvent=(Event)session.load(Event.class,eventId);aPerson.getEvent().add(anEvent);session.getTransaction().commit();1.3.4值類(lèi)型的集合我們把一個(gè)
6、值類(lèi)型對(duì)象的結(jié)婚加入Person實(shí)體中。我們希望保存email地址,所以使用String類(lèi)型。而且這次的集合類(lèi)型又是Set。PERSON_EMAIL_ADDR表里面有兩個(gè)字段,PERSON_ID和EMAL_ADDR。其中PERSON_ID為PERSON的主鍵,EMAIL_ADDR為一個(gè)String類(lèi)型,用于保存地址。把這個(gè)元素加入到集合中。privatevoidaddEailToPerson(LongpersonId,StringemailAddress){Sessionsession=HibernateUtil
7、.getSessionFactory().getCurrentSession();session.beginTransaction();PersonaPerson=(Person)session.load(Persion.class,personId);aPerson.getEailAddress().add(emailAddress);session.getTransaction().commit();}1.3.5雙向關(guān)聯(lián)雙向關(guān)聯(lián)(bi-directionalassociation)----在Java里讓per
8、son和event可以從關(guān)聯(lián)的任何一端訪(fǎng)問(wèn)另一端。首先,把一個(gè)參與者(person)的集合加入Event類(lèi)中:privateSetparticipants=newHashSet();publicSetgetParticipants(){returnparticipants;}publicvoidsetParticipants(Setparticipants){this.p