hibernate學習:HelloWorld_xml

十五樓亮哥發表於2015-02-05

一:HelloWorld程式結構




2:相關原始碼

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;
	}
	

}


Student.hbm.xml:

<?xml version="1.0"?>






hibernate.cfg.xml

<?xml version='1.0' encoding='utf-8'?>


com.mysql.jdbc.Driverjdbc:mysql://localhost:3306/hibernaterootrootorg.hibernate.dialect.MySQLDialect org.hibernate.cache.NoCacheProvidertrueupdate



public class StudentTest {
	public static void main(String[] args) {
		Student s = new Student();
		s.setName("劉彥亮");
		s.setAge(27);

		Configuration cfg = new Configuration();
		// 解析hibernate配置檔案cfg.configure()
		// buildSessionFactory建立session工廠
		SessionFactory factory = cfg.configure().buildSessionFactory();
		//建立session
		Session session = factory.openSession();
		//開啟事務
		session.beginTransaction();
		//持久化操作
		session.save(s);
		//提交事務
		session.getTransaction().commit();
		//關閉相關資源
		session.close();
		factory.close();

	}

}


3:console輸出

Hibernate: insert into Student (name, age) values (?, ?)


4:知識總結

本例講的是基於xml對映方式的hibernate。

準備條件:

(1)hibernate中心包,hibernate依賴包,slf4j-nop-1.5.8.jar(hibernate依賴包中有:slf4j-api-1.5.8.jar,只是日誌的介面,沒有實現,所以引入對應版本的實現slf4j-nop-1.5.8.jar)

(2)建立model物件

(3)建立hibernate配置檔案hibernate.cfg.xml,配置檔案的名稱約定俗成,最好不要修改。配置檔案的格式最好拷貝hibernate原始碼中的demo。

<property name="hbm2ddl.auto">update</property>可以自動建立資料庫。

(4)有了model,有了資料庫,還需要知道model中的屬性跟資料庫欄位的對應關係。需要Student.hbm.xml,跟model在同一目錄下。

(5)在hibernate.cfg.xml中配置model對映
<mapping resource="com/hibernate/model/Student.hbm.xml" />

單元測試:
(1)建立配置檔案解析物件
          Configuration cfg = new Configuration(); 

(2)cfg.configure();返回的是Configuration自身物件,configure()方法就是會解析hibernate配置檔案,返回一個解析完配置檔案的Configuration 。

(3)cfg.configure().buildSessionFactory()建立session工廠,字面意思session工廠就是來建立session的。

(4)Session session = factory.openSession(); 開啟session。

           //開啟事務
          session.beginTransaction();
  //持久化操作
  session.save(s);
  //提交事務
   session.getTransaction().commit();
  //關閉相關資源
   session.close();
   factory.close();

相關文章