由於我用的版本是Junit5 在測試的時候發現會出現空指針問題,
源代碼如下
package com.qjh.test;
//junit測試
import org.hibernate.Session;
import org.hibernate.Transaction;
import org.junit.After;
import org.junit.Before;
import org.junit.jupiter.api.BeforeAll;
import org.junit.jupiter.api.Test;
import com.qjh.pojo.User;
import com.qjh.util.HibernateUtil;
public class HibernateTest {
Session session =null;
Transaction tx=null;
//每次調用方法前執行
@BeforeAll
public void setUp() {
try {
//獲取Session
session =HibernateUtil.getSession();
//獲取事務並且開啓事務
tx =session.beginTransaction();
/**
* 等同於上一句話
* Transcation tx= session.getTranscation();
* tx.begin();
*/
} catch (Exception e) {
e.printStackTrace();
}
}
//每次調用方法後啓執行
@After
public void tearDown() {
HibernateUtil.close();
}
//數據添加
@Test
public void testSave()
{
try {
//獲取對象
User user =new User();
//更改對象
user.setName("我啊");
user.setAge(22);
//保存數據
session.save(user);
//提交事務
tx.commit();
} catch (Exception e) {
e.printStackTrace();
if(tx!=null){
tx.rollback();
}
}
}
}
測試結果一直報空指針 在session.save(user)這一行,後來我在網上找發現 Junit5版本和Junit4不一樣
在Junit5版本中 @Before 應該換成 @BeforAll 且方法應該爲靜態
這樣就不不出錯了
補充: