在利用注解開發(fā)數(shù)據(jù)庫(kù)持久層以前,,需要學(xué)習(xí)一個(gè)規(guī)范JPA(Java Persistence API),,這也是SUN公司提出的數(shù)據(jù)庫(kù)的持久化規(guī)范。就類似于JDBC,,Servlet,JSP等規(guī)范一樣,。而Hibernate框架就實(shí)現(xiàn)了此規(guī)范,我們可以通過注解和配置文件來實(shí)現(xiàn)此規(guī)范,。前邊的學(xué)習(xí)都是建立在配置文件的基礎(chǔ)上,,而注解開發(fā)現(xiàn)在也處于一種趨勢(shì),畢竟它大大提高了開發(fā)速度,。
看一下注解在Hibernate框架中的開發(fā)知識(shí),。
一,首先需要導(dǎo)入支持注解開發(fā)的jar包:
二,,在Hibernate框架進(jìn)行注解開發(fā)時(shí),主要是代替實(shí)體和數(shù)據(jù)表的映射文件,,而核心配置文件中的,,數(shù)據(jù)庫(kù)的連接等等,還是需要xml配置文件,,進(jìn)行配置的,。先看一下Hibernate中常用的注解:
1,@Entity : 表示當(dāng)前的類為實(shí)體類,,聲明在類的前面,。可以將當(dāng)前類和數(shù)據(jù)庫(kù)的表和字段進(jìn)行關(guān)聯(lián)映射,。
2,,@Table:表示映射的表,聲明在類的前面
3,,@Id:表示主鍵的映射,,聲明在主鍵的get方法前邊,,默認(rèn)情況下主鍵利用assigned(用戶提供)生成策略。如果想要設(shè)置API規(guī)范提供了四種主鍵生成策略:
4,,@Column : 表示映射屬性,,和表的字段進(jìn)行關(guān)聯(lián)
5,@ManyToOne : 表示映射關(guān)系中的多對(duì)一
6,,@JoinColumn : 表示外鍵映射屬性,,和表的外鍵字段進(jìn)行關(guān)聯(lián)
7,@OneToMany : 表示映射關(guān)系中的一對(duì)多,,這里需要注意,,一對(duì)多時(shí),外鍵的維護(hù)需要翻轉(zhuǎn)交給多的一方進(jìn)行維護(hù),,需要配置反轉(zhuǎn)屬性mappedBy,屬性取值為多的一方的映射屬性名稱,。相當(dāng)于xml配置文件中的Inverse="true"。
8,,@OrderBy : 表示排序字段
9,@Transient : 表示聲明瞬時(shí)屬性,,不和數(shù)據(jù)庫(kù)的字段發(fā)生關(guān)聯(lián),,也就是沒有表中列與之映射。
等等吧,,其實(shí)我感覺這些屬性和xml配置文件屬性都是一一對(duì)應(yīng)的,,及時(shí)不一樣,也會(huì)有與之類似的屬性進(jìn)行實(shí)現(xiàn)其功能,,所以我們可以對(duì)比著使用,。當(dāng)然這里只是一些常用的,當(dāng)我們需要時(shí)還需要我們查看文檔進(jìn)行編寫,。
三,,看一個(gè)簡(jiǎn)單的利用主鍵開發(fā)的實(shí)體類吧,這里就不需要我們?cè)倬帉懪渲梦募耍?/span>
四,,當(dāng)然用了注解的開發(fā)方式,,我們的核心配置文件就需要我修改了,這里就需要Hibernate的AnnotationSessionFactoryBean工廠類了,,
|
|