資源描述:
《hibernate開發(fā)講義jpa注解》由會員上傳分享,免費在線閱讀,更多相關(guān)內(nèi)容在教育資源-天天文庫。
1、目錄Hibernate簡介Hibernate基本配置基本實體類映射高級實體類映射HQL語言實例設(shè)計課后作業(yè)目錄Hibernate簡介Hibernate基本配置基本實體類映射高級實體類映射HQL語言實例設(shè)計課后作業(yè)Hibernate簡介Hibernate是一個開放源代碼的對象關(guān)系映射(ORM)框架,它對JDBC進(jìn)行了非常輕量級的對象封裝,使得Java程序員可以隨心所欲的使用對象編程思維來操縱數(shù)據(jù)庫。Hibernate可以應(yīng)用在任何使用JDBC的場合,既可以在Java的客戶端程序使用,也可以在Servlet/JSP的Web應(yīng)用中使用,最具革命意義的是,
2、Hibernate可以在應(yīng)用EJB的JavaEE架構(gòu)中取代CMP(Container-ManagedPersistence),完成數(shù)據(jù)持久化的重任。Hibernate簡介Hibernate的核心接口一共有5個,分別為:Session、SessionFactory、Transaction、Query和Configuration。這5個核心接口在任何開發(fā)中都會用到。通過這些接口,不僅可以對持久化對象進(jìn)行存取,還能夠進(jìn)行事務(wù)控制。下面對這五個核心接口分別加以介紹。Hibernate簡介Session接口:Session接口負(fù)責(zé)執(zhí)行被持久化對象的CRUD操
3、作(CRUD的任務(wù)是完成與數(shù)據(jù)庫的交流,包含了很多常見的SQL語句。)。但需要注意的是Session對象是非線程安全的。同時,Hibernate的session不同于JSP應(yīng)用中的HttpSession。這里當(dāng)使用session這個術(shù)語時,其實指的是Hibernate中的session,而以后會將HttpSesion對象稱為用戶session。Hibernate簡介SessionFactory接口:SessionFactory接口負(fù)責(zé)初始化Hibernate。它充當(dāng)數(shù)據(jù)存儲源的代理,并負(fù)責(zé)創(chuàng)建Session對象。這里用到了工廠模式。需要注意的是Se
4、ssionFactory并不是輕量級的,因為一般情況下,一個項目通常只需要一個SessionFactory就夠,當(dāng)需要操作多個數(shù)據(jù)庫時,可以為每個數(shù)據(jù)庫指定一個SessionFactory。Hibernate簡介Configuration接口:Configuration接口負(fù)責(zé)配置并啟動Hibernate,創(chuàng)建SessionFactory對象。在Hibernate的啟動的過程中,Configuration類的實例首先定位映射文檔位置、讀取配置,然后創(chuàng)建SessionFactory對象。Hibernate簡介Transaction接口:Transac
5、tion接口負(fù)責(zé)事務(wù)相關(guān)的操作。它是可選的,開發(fā)人員也可以設(shè)計編寫自己的底層事務(wù)處理代碼。Hibernate簡介Query和Criteria接口:Query和Criteria接口負(fù)責(zé)執(zhí)行各種數(shù)據(jù)庫查詢。它可以使用HQL語言或SQL語句兩種表達(dá)方式。目錄Hibernate簡介Hibernate基本配置基本實體類映射高級實體類映射HQL語言實例設(shè)計課后作業(yè)Hibernate基本配置使用Java屬性文件加編碼方式配置使用XML文件配置(hibernate.cfg.xml)配置hibernate.cfg.xml目錄Hibernate簡介Hibernate基
6、本配置基本實體類映射高級實體類映射HQL語言實例設(shè)計課后作業(yè)基本實體類映射XML映射文件映射注釋映射注釋JPA是EJB3規(guī)范中負(fù)責(zé)對象持久化的應(yīng)用程序編程接口,它定義一系列的注釋。這些注釋大體可分為:類級別注釋、方法級別注釋、字段級別注釋。給實體類添加適當(dāng)?shù)淖⑨尶梢栽诔绦蜻\行時告訴Hibernate如何將一個實體類保存到數(shù)據(jù)庫中以及如何將數(shù)據(jù)以對象的形式從數(shù)據(jù)庫中讀取出來。映射注釋目前有兩種注釋方案可以確定對象與表格之間的對應(yīng)關(guān)系:一種是注釋實體類的屬性字段(字段級別注釋),成為字段訪問方式(fieldaccessmode);另一種是注釋實體類的屬
7、性訪問方法(方法級別注釋),稱為屬性訪問方式(propertyaccessmode)。映射注釋注釋字段映射注釋注釋getter方法基本映射@Entity映射實體類@Id映射生成主鍵@Table映射表格@Column映射表格列@Transient定義暫態(tài)屬性@Entity與@Table@Entity(name="EntityName")必須,name為可選,對應(yīng)數(shù)據(jù)庫中一的個表@Table(name="",catalog="",schema="")可選,通常和@Entity配合使用,只能標(biāo)注在實體的class定義處,表示實體對應(yīng)的數(shù)據(jù)庫表的信息nam
8、e:可選,表示表的名稱.默認(rèn)地,表名和實體名稱一致,只有在不一致的情況下才需要指定表名catalog:可選,表示Catal