JPWH :持久層框架Hibernate入門程式(配置版)
阿新 • • 發佈:2018-12-11
簡介:利用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&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 - 檢視資料庫