1. 程式人生 > >JPWH :持久層框架Hibernate入門程式(配置版)

JPWH :持久層框架Hibernate入門程式(配置版)

簡介:利用Hibernate框架,搭建最簡單的應用案例。

一、環境搭建

1 - 匯入JAR包

  • hibernate-core 框架的核心包 在這裡插入圖片描述

  • mysql-connector-java 用來連線資料庫 在這裡插入圖片描述

  • junit 單元測試用 在這裡插入圖片描述

2 - 新建普通JAVA專案 在這裡插入圖片描述

二、編輯程式碼

1 - hibernate.cfg.xml 框架配置檔案

<?xml version="1.0" encoding="UTF-8"?>
<!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.connection.driver_class">com.mysql.jdbc.Driver</property>
        <!-- 資料庫密碼 -->
        <property name="hibernate.connection.password">19970614</property>
        <!-- 資料庫使用者名稱 -->
        <property name="hibernate.connection.username">root</property>
        <!-- 資料庫url,類似於JDBC中連線資料庫的url -->
        <property name="hibernate.connection.url">jdbc:mysql://localhost:3306/jpwh?useUnicode=true&amp;characterEncoding=UTF8</property>
        <!-- 資料庫使用的方言 -->
        <property name="hibernate.dialect">org.hibernate.dialect.MySQLDialect</property>
        <!-- 是否把輸出到控制檯的sql進行格式化 -->
        <property name="hibernate.format_sql">true</property>
        <!-- 是否將Hibernate執行時的sql輸出到控制檯 -->
        <property name="hibernate.show_sql">true</property>
        <!-- 自動建立|更新|驗證資料庫表結構 -->
        <property name="hibernate.hbm2ddl.auto">create</property>
    </session-factory>
</hibernate-configuration>

2 - User.java 需要進行持久化的類

package ray;

public class User {
	private int uid;
	private String username;
	
	public int getUid() {
		return uid;
	}
	public void setUid(int uid) {
		this.uid = uid;
	}
	public String getUsername() {
		return username;
	}
	public void setUsername(String username) {
		this.username = username;
	}

}

3 - User.hbm.xml 為持久化類編寫配置檔案

<?xml version="1.0"?>
<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<!-- Generated 2018-9-25 19:22:57 by Hibernate Tools 3.5.0.Final -->
<hibernate-mapping>
    <class name="ray/User" table="USER">
        <id name="uid" type="int">
            <column name="UID" />
            <generator class="assigned" />
        </id>
        <property name="username" type="java.lang.String">
            <column name="USERNAME" />
        </property>
    </class>
</hibernate-mapping>

4 - 將持久化類配置檔案放入框架配置檔案中去 在這裡插入圖片描述

5 - 編寫測試類

package test;

import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.Transaction;
import org.hibernate.cfg.Configuration;
import org.junit.Test;

import ray.User;

public class TestUser {
	
	@Test
	public void testAdd() {
		//1.生成配置
		Configuration cfg  = new Configuration().configure();
		//2.生成會話工廠
		SessionFactory sf = cfg.buildSessionFactory();
		//3.開啟會話
		Session session = sf.openSession();
		//4.開啟事務
		Transaction tx = session.beginTransaction();
		
		User user = new User();
		user.setUsername("Ray");
		session.save(user);
		
		//5.提交事務
		tx.commit();
		//6.關閉會話
		session.close();
		//7.關閉會話工廠
		sf.close();
	}
}

6 - 專案檔案結構 在這裡插入圖片描述

三、單元測試

1 - 測試啟動不起來 在這裡插入圖片描述

  • 解決之道:除了引入junit-4.12.jar之外,還要引入2個依賴jar包:hamcrest-core-1.3.rc2.jar,hamcrest-library-1.3.rc2.jar

2 - 不能解析持久化類 在這裡插入圖片描述

  • 解決之道:“/” -> “.” 在這裡插入圖片描述

3 - 不能識別資料庫方言 在這裡插入圖片描述

  • 解決之道:MySQL升級後方言改變MySQLDialect -> MySQL5InnoDBDialect 在這裡插入圖片描述 4 - 測試成功 在這裡插入圖片描述

5 - 檢視資料庫 在這裡插入圖片描述