映射的概念
在上次的博文Hibernate從入門到精通(三)Hibernate配置文件我們已經講解了一下 Hibernate中的兩種配置文件,其中提到了兩種配置文件的主要區別就是XML可以配置映射。這裡提到的映射即 對象關系映射(Object Relational Mapping)。ORM的實現目的就是將對象數據保存到數據庫中,同時可以將數 據庫數據讀入對象中,這樣開發人員就可以將對數據庫數據的操作轉化為對這些對象的操作。
基本映 射
了解了映射的意義和概念之後,我們來講解一下映射的分類。從映射的概念來看,單個的數據庫表 可以映射成為一個對象,拋開Hibernate不談,這種思路在很多項目開發中時常見的,即根據表結構創建相應 實體類,這種簡單的映射關系在Hibernate映射中被稱為基本映射。
基本映射實例
如下圖所示 的表結構:
經過轉換之後,可以創建相應 的對象,代碼如下:
public class User{ private String id; private String name; public String getId() { return id; } public void setId(String id) { this.id = id; } public String getName() { return name; } public void setName(String name) { this.name = name; } }
對於Hibernate來講,僅僅是有上面的還是不夠的,還需要一個XML格式的映射文件User.hbm.xml, 代碼如下:
<?xml version="1.0"?> <!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN" "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd"> <hibernate-mapping package="com.zs.hibernate"> <class name="User1" table="t_user1"> <id name="id" column="user_id" length="32" access="field"> <generator class="uuid"/> </id> <property name="name" length="30" unique="true" not-null="true"/> </class> </hibernate-mapping>
注解配置基本映射實例
除了上述XML方式配置映射外,還可以 通過給類文件添加注解的方式配置映射,具體代碼如下:
@Entity @Table(name="t_user") public class User{ @Id private String id; @GeneratedValue private String name; public String getId() { return id; } public void setId(String id) { this.id = id; } public String getName() { return name; } public void setName(String name) { this.name = name; } }
到此,映射的基本概念和簡單實用,我們就算是講解完畢了,對於映射配置中的一些細節問題,例 如:@Entity,@Table的使用說明等等,建議大家找一本注解和XML配置相關的說明文檔進行學習,這裡就不再給 大家進行講解了。下次我們講解一些稍微復雜一點的映射。