1.表中存在自動(dòng)增長(zhǎng)的INT型主鍵:
修改Serviceinfo.hbm.xml配置文件中的generator標(biāo)簽,由assigned變成
increment。
<id name="iid" type="integer">
<column name="IID" />
<generator class="increment" />
</id>
2.使用session步驟:
Session session = HibernateSessionFactory.getSession();
Transaction tx = session.beginTransaction();
//do
tx.commit();
session.close();
使用session時(shí)注意,不能在一個(gè)session沒(méi)有關(guān)掉以前再開(kāi)啟另外的session,盡量以傳參的形式解決;還有不能把session創(chuàng)建在while等循環(huán)語(yǔ)句中,不能保證session和事務(wù)的及時(shí)創(chuàng)建與關(guān)閉。
3.hql是hibernate定義的查詢(xún)語(yǔ)句,它跟sql不同,主要體現(xiàn)在沒(méi)有select;from后面跟的不是數(shù)據(jù)庫(kù)的表名,而是由數(shù)據(jù)庫(kù)映射而成的抽象類(lèi)的名稱(chēng);where后面的相等判斷可以使用對(duì)象等非簡(jiǎn)單類(lèi)型數(shù)據(jù)。
String hql = "from Parameterinfo where iid = " + IID + " and io = " + io;
4.常用session對(duì)象方法
session.delete(serviceinfo);//delete
session.update(serviceinfo);//update
session.saveOrUpdate(serviceinfo);//insert
5.表中存在有外鍵依賴(lài)的問(wèn)題:
如果表A的字段a依賴(lài)于表B中的主鍵b,則在把表映射成抽象類(lèi)時(shí),會(huì)把表A的字段a映射為一個(gè)表B的實(shí)例,但是當(dāng)拿到表A的實(shí)例是,其中的關(guān)于表B的屬性中只有主鍵b是有值得,其余都為NULL,只能再通過(guò)查詢(xún)獲得表B實(shí)例的全部信息。
posted on 2008-07-23 16:53
胖胖泡泡 閱讀(122)
評(píng)論(0) 編輯 收藏