1. 程式人生 > >(1)Hibernate安裝及配置

(1)Hibernate安裝及配置

Hibernate的安裝:

然後在JBoss Application Development中選上Hibernate Tools以及在J2EE中選上Hibernate

下載hibernate-release-5.3.6.Final

配置Hibernate:

1.匯入hibernate-release-5.3.6.Final\lib\required 裡面的jar包

2.把hibernate-release-5.3.6.Final\project\etc\hibernate.cfg.xml匯入,並且根據hibernate.properties進行配置(ctrl+f 搜MYSQL)

3.建立實體類

4.在實體類的包中建立hbm檔案(可以自動生成)

5.把該hbm檔案新增到hibernate.cfg.xml(<mapping resource="model/User.hbm.xml"/>

注意:(1).如果mysql是5.5等, 需要改成<property name="hibernate.dialect">org.hibernate.dialect.MySQL5Dialect</property>

(2).hibernate.hbm2ddl.auto引數的作用主要用於:自動建立|更新|驗證資料庫表結構。如果不是此方面的需求建議set value="none"。
create:
每次載入hibernate時都會刪除上一次的生成的表,然後根據你的model類再重新來生成新表,哪怕兩次沒有任何改變也要這樣執行,這就是導致資料庫表資料丟失的一個重要原因。
create-drop :
每次載入hibernate時根據model類生成表,但是sessionFactory一關閉,表就自動刪除。
update:
最常用的屬性,第一次載入hibernate時根據model類會自動建立起表的結構(前提是先建立好資料庫),以後載入hibernate時根據 model類自動更新表結構,即使表結構改變了但表中的行仍然存在不會刪除以前的行。要注意的是當部署到伺服器後,表結構是不會被馬上建立起來的,是要等 應用第一次執行起來後才會。
validate :
每次載入hibernate時,驗證建立資料庫表結構,只會和資料庫中的表進行比較,不會建立新表,但是會插入新值。

(3).注意在hibernate.cfg.xml配置mapping

Hibernate的使用:

通過建立SessionFactory建立session:

Configuration cfg=new Configuration().configure();
		SessionFactory f=cfg.buildSessionFactory();
		Session session=f.openSession();

處理事務:

        session.beginTransaction();//開始事務
		User u=new User();
		u.setUsername("張三");
		u.setPassword("123");
		u.setNickname("ZS");
		u.setBorn(new Date());
		session.save(u);//插入
		session.getTransaction().commit();//提交事務

整體截圖:

hibernate.cfg.xml的配置如下:

<!DOCTYPE hibernate-configuration PUBLIC
	"-//Hibernate/Hibernate Configuration DTD 3.0//EN"
	"http://www.hibernate.org/dtd/hibernate-configuration-3.0.dtd">

<hibernate-configuration>
	<session-factory>
	<property name="hibernate.hbm2ddl.auto">update</property>
	<property name="hibernate.dialect">org.hibernate.dialect.MySQL5InnoDBDialect</property>
<!-- 	<property name="hibernate.dialect">org.hibernate.dialect.MySQL5Dialect</property> -->
	<property name="hibernate.connection.driver_class">com.mysql.jdbc.Driver</property>
	<property name="hibernate.connection.url">jdbc:mysql://localhost:3306/hibernate_01</property>
	<property name="hibernate.connection.username">root</property>
	<property name="hibernate.connection.password">HZP123</property>
		<property name="show_sql">true</property>
		<mapping resource="model/User.hbm.xml"/>
	</session-factory>
</hibernate-configuration>

注意:(1).記得把<session-factory name="foo">去掉名字,變為<session-factory>

(2).如果提示class-cache有問題,就把<class-cache/>刪掉