經過XML配置來實現持久化:java
首先咱們來創建一個實體類:數據庫
package com.hibernate.model; public class Student { private int id; private String name; private int age; public int getId() { return id; } public void setId(int id) { this.id = id; } public String getName() { return name; } public void setName(String name) { this.name = name; } public int getAge() { return age; } public void setAge(int age) { this.age = age; } }
<?xml version="1.0"?> <!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN" "http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd"> <hibernate-mapping package="com.hibernate.model"> <class name="Student" table="t_student"> <id name="id" column="s_id"> <generator class="native" /> </id> <property name="age" /> <!-- 若字段屬性值與數據庫字段相同可不寫 --> <property name="name" /> </class> </hibernate-mapping>
XML文件中的id用於指明哪一個column字段是數據庫表t_student中的主鍵,property中的column屬性用於指明類屬性名對應數據庫表的哪一個字段,若是屬性名和字段名一直,該column能夠省略,如上中的age和name屬性。編程
至此,只要將該XML文件加入Hibernate的hibernate.cfg.xml中就能夠: hibernate.cfg.xml中代碼以下
app
<mapping resource="com/hibernate/model/Student.hbm.xml" /> <!-- XML文件的方式 -->this
經過Annotation註解來實現持久化:spa
首先一樣咱們來創建一個持久類hibernate
package com.hibernate.model; import javax.persistence.Entity; import javax.persistence.EnumType; import javax.persistence.Enumerated; import javax.persistence.Id; import javax.persistence.Table; import javax.persistence.Transient; /** * 注意註解一點要寫在get()方法上,寫在Field中有點違反面向對象編程,由於Hibernate會訪問限定符爲private的該屬性 * @author Administrator * */ @Entity @Table(name="t_teacher") public class Teacher { //類名必須和數據庫的代表一致 private int id; private String addr; private String sex; private String youwifename; private Zhicheng _zhicheng; //枚舉類型 public enum Zhicheng{A,B,C} //實現枚舉類型 @Enumerated(EnumType.STRING) public Zhicheng get_zhicheng() { return _zhicheng; } public void set_zhicheng(Zhicheng _zhicheng) { this._zhicheng = _zhicheng; } @Transient //標註爲透明,表示數據庫中將不創建該字段 public String getYouwifename() { return youwifename; } public void setYouwifename(String youwifename) { this.youwifename = youwifename; } @Id public int getId() { return id; } public void setId(int id) { this.id = id; } public String getAddr() { return addr; } public void setAddr(String addr) { this.addr = addr; } public String getSex() { return sex; } public void setSex(String sex) { this.sex = sex; } }
OK!註解實現持久化很簡單吧。接下來只要將註解的類加入hibernate.cfg.xml中:
code
<mapping class="com.hibernate.model.Teacher"/> <!--註解的方式 -->xml
接下來講一下註解的詳細狀況:對象
@Entity 表示該類將使用註解來實現持久化
@Table(name="t_teacher") 當類名和表名不一致時使用該註解,能夠實現Teacher對應數據庫表t_teacher
@Transient 標註爲透明,表示數據庫中將不創建該字段
@Enumerated(EnumType.STRING) 代表該字段是枚舉類型
總結:明顯使用Annotation來實現持久化更加簡單,如今企業中在Hibernate通常都使用Annotation,而不多使用XML。