Hibernate_1_環境的配置

1. lib中導入jar包:

   slf4j-api-1.6.1.jar、mysql-connector-java-5.1.5-bin.jar、jta-1.1.jar、javassist-3.12.0.GA.jar、hibernate3.jar、dom4j-1.6.1.jar、antlr-2.7.6.jar 、

   hibernate-jpa-2.0-api-1.0.0.Final.jar、commons-collections-3.1.jar

  並將這些jar應用到Referenced Libraries中。

2. 在根目錄下建立hibernate.cfg.xml文件並配置信息:

<!-- 配置數據庫信息 -->
<property name="dialect">//配置方言
org.hibernate.dialect.MySQLDialect
</property>
<property name="connection.url">//配置url
jdbc:mysql://localhost:3306/hibernate
</property>
<property name="connection.driver_class">//配置JDBC驅動
com.mysql.jdbc.Driver
</property>
<property name="connection.username">root</property>//用戶名
<property name="connection.password">mysqldbms</property>//密碼

<!-- 顯示生成的SQL語句 --> 
<property name="hibernate.show_sql">true</property>

<!-- 導入映射文件 -->
<mapping resource="it/cast/User.hbm.xml" />

3. java類的包下建立User.hbm.xml文件並配置:

<class name="JavaClassName" table="tableName">

	<!-- id元素用於映射主鍵 -->
	<id name="id" type="int" column="id">
	<!-- native:使用數據庫的自動增長策略 -->
	<generator class="native" />
	</id>

	<property name="name" type="string" column="name" />
</class>

4. User類中建兩個屬性idname,並建立起getset方法:

public class User {

	private Integer id;
	private String name;
	// 屬性爲集合類型,生命並實例化,實例化後,在其它類中就可以直接調用了
	private Set<String> addressSet = new HashSet<String>();

	public Integer getId() {
		return id;
	}

	public Set<String> getAddressSet() {
		return addressSet;
	}

	public void setAddressSet(Set<String> addressSet) {
		this.addressSet = addressSet;
	}

	public void setId(Integer id) {
		this.id = id;
	}

	public String getName() {
		return name;
	}

	public void setName(String name) {
		this.name = name;
	}

	// 重寫toString函數
	public String toString() {
		return "User [id=" + id + ", name=" + name + ", addressSet="
				+ addressSet + "]";
	}
}
5.封裝一個專門生成session的類:

/**
 * 用來生成session的封裝類
 * @author A_shun
*/
public class HibernateUtils {
	// SessionFactory全局只需要一個
    private static SessionFactory sessionFactory;
    //session全局只需一個
	private static Session session = null;
	static {
		Configuration cfg = new Configuration();
		cfg.configure("hibernate.cfg.xml");// 讀取指定地址的文件
       //建立sessionFactory工廠
		sessionFactory = cfg.buildSessionFactory();
		session = sessionFactory.openSession();//開啓一個session
	}
	/**
	 * 獲取全局唯一的session
	 */
	public static Session getSession() {
		return session;
	}
}

6. 新建持久化層類,其中代碼如下:

@Test
// 保存屬性的方法
	public void testSave() throws Exception {
		User user = new User();
		user.setName("zhangSan");
		// 打開一個新的Session
		Session session = sessionFactory.openSession();
		// 開始事務
		Transaction tx = (Transaction) session.beginTransaction();
		session.save(user);//保存對象
		tx.commit();// 提交事務
		session.close();// 釋放Session佔用的內存
	}

   @Test
	// 獲取屬性的方法
	public void testGet() {
		// 打開一個新的Session
		Session session = sessionFactory.openSession();
		// 開始事務
		Transaction tx = (Transaction) session.beginTransaction();
		//取得user對象的第一個屬性
		User user = (User) session.get(User.class, 1);
		System.out.println(user);//輸出user對象
		
		tx.commit();//提交事務
		session.close();//釋放session佔用的內存
	}









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