hibernate創(chuàng)建session報空指針異常版本 hibernate5.1.0 jboss4.3
package com.imooc.entity;
import java.util.Date;
import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.Transaction;
import org.hibernate.boot.registry.StandardServiceRegistryBuilder;
import org.hibernate.cfg.Configuration;
import org.hibernate.service.ServiceRegistry;
import org.junit.After;
import org.junit.Before;
import org.junit.Test;
public class StudentsTest {
private SessionFactory sessionFactory;
private Session session;
private Transaction transaction;
@Test
public void testSaveStudents() {
Students s = new Students();//創(chuàng)建學生對象
s.setSid(1);
s.setSname("張三豐");
s.setGender("男");
s.setBirthday(new Date());
s.setAddress("武當山");
session.save(s);//將學生對象寫入數(shù)據(jù)庫
}
@Before
public void init(){
//創(chuàng)建配置對象并讀取classpath下的配置文件hibernate.cfg.xml
Configuration config = new Configuration();
//創(chuàng)建serviceRegistry對象,hibernate中的任何配置和服務都必須在此對象中注冊
StandardServiceRegistryBuilder ssrb = new StandardServiceRegistryBuilder().applySettings(config.getProperties());
ServiceRegistry serviceRegistry = ssrb.build();
//創(chuàng)建會話工廠對象
sessionFactory = config.configure().buildSessionFactory(serviceRegistry);
//開啟會話對象
session = sessionFactory.openSession();
//開啟事務
transaction = session.beginTransaction();
}
@After
public void destroy(){
if(transaction!=null){
transaction.commit();//提交事務
if(session!=null){
session.close();//關(guān)閉會話
if(sessionFactory!=null){
sessionFactory.close();//關(guān)閉會話工廠
}
}
}
}
}
2018-08-06
我的問題是沒有通過spring 的bean 直接調(diào)用了dao層的實體類 所以空指針
2016-03-28
2016-03-10
2016-03-02
注冊對象不對,應該用buildServiceRegistery()方法,而不是用build()方法