【hibernate框架3】使用Annotation註解進行實體類操作

上一篇講的是hibernate的環境搭建,因爲現在大部分公司在使用Annotation來操作實體類進而進行表的建立,免去了寫Xxx.hbm.xml表映射文件的煩惱,所以我再寫一個用Annotation來操作實體類的例子:

導包什麼的我就不說了,詳情看上一篇吧,直接切入主題:

1.首先說說什麼是註解(Annotation),這個學過Java基礎的人應該不陌生,這裏只說一下在hibernate框架裏如何使用。

@符號後面加一個名字就是Annotation

使用註解Annotation時用的jar包。 包括: 
hibernate-commons-annotations-3.3.0.ga.jar //進行反射時需要的包
hibernate-entitymanager.jar 
ejb3-persistence.jar //符合jpa標準的annotation的實現
hibernate-annotations.jar 

jpa是一個標準,hibernate是一個實現
JDBC是一個標準,各個數據庫的驅動是實現

注意,3.5以後的hibernate已經包含了Annotation時用的jar包,所以上面的包都不需要再次添加!!

2.工程部分源碼的分享:

數據庫中創建teacher表

建立Teacher實體類(不用添加Annotation的jar包,因爲hb3.5以後的都加過了):
 

package cn.edu.hpu.model;
 
 
import javax.persistence.Entity;
import javax.persistence.Id;
 
 
//‘@+語句’就叫做註解
//@Entity表示這傢伙是個實體類(一個表中的對象)
 
 
@Entity 
public class Teacher {
	private String name;
	private int id;
	private String title;
	public String getName() {
		return name;
	}
	public void setName(String name) {
		this.name = name;
	}
	
	//@Id告訴hibernate這個是主鍵
	@Id
	public int getId() {
		return id;
	}
 
 
	//不加默認就是@Basic
	public void setId(int id) {
		this.id = id;
	}
	public String getTitle() {
		return title;
	}
	public void setTitle(String title) {
		this.title = title;
	}
	
	
}

在hibernate.cfg.xml中配置:

<mapping class="cn.edu.hpu.model.Teacher"/>

測試類
TeacherTest.java:

package cn.edu.hpu.test;
 
 
import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.cfg.AnnotationConfiguration;
import org.hibernate.cfg.Configuration;
 
 
import cn.edu.hpu.model.Teacher;
 
 
public class TeacherTest {
	public static void main(String[] args) {
		Teacher t=new Teacher();
		t.setId(2);
		t.setName("t2");
		t.setTitle("中級");
		
		//AnnotationConfiguration是用來專門讀Annotation配置的
		Configuration cfg=new AnnotationConfiguration();
		//文件下的 <mapping resource=.....
		SessionFactory sf=cfg.configure().buildSessionFactory();
		//buildSessionFactory()可以理解爲能得到conn的類
		
		//暫時把Session理解成數據庫的Connection
		Session session=sf.openSession();//得到session
		session.beginTransaction();
		session.save(t);
		session.getTransaction().commit();
		session.close();
		sf.close();
	}
}

運行TeacherTest.java後控制檯輸出:
Hibernate: insert into Teacher (name, title, id) values (?, ?, ?)
數據成功添加到數據庫中

轉載請註明出處!程序猿之洞:http://blog.csdn.net/acmman/
 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章