hibernate創建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();//創建學生對象
s.setSid(1);
s.setSname("張三豐");
s.setGender("男");
s.setBirthday(new Date());
s.setAddress("武當山");
session.save(s);//將學生對象寫入數據庫
}
@Before
public void init(){
//創建配置對象并讀取classpath下的配置文件hibernate.cfg.xml
Configuration config = new Configuration();
//創建serviceRegistry對象,hibernate中的任何配置和服務都必須在此對象中注冊
StandardServiceRegistryBuilder ssrb = new StandardServiceRegistryBuilder().applySettings(config.getProperties());
ServiceRegistry serviceRegistry = ssrb.build();
//創建會話工廠對象
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();//關閉會話
if(sessionFactory!=null){
sessionFactory.close();//關閉會話工廠
}
}
}
}
}
2018-08-06
我的問題是沒有通過spring 的bean 直接調用了dao層的實體類 所以空指針
2016-03-28
package?hibernate_test1; import?java.util.Date; import?org.hibernate.Session; import?org.hibernate.SessionFactory; import?org.hibernate.Transaction; import?org.hibernate.cfg.Configuration; import?org.hibernate.service.ServiceRegistry; import?org.hibernate.service.ServiceRegistryBuilder; import?org.junit.After; import?org.junit.Before; import?org.junit.Test; public?class?HibernateTest?{ private?SessionFactory?sessionFactory; private?Session?session; private?Transaction?transaction; @Before public?void?init()?{ //?創建配置對象 Configuration?configuration?=?new?Configuration().configure(); //?創建服務注冊對象 ServiceRegistry?serviceRegistry?=?new?ServiceRegistryBuilder().applySettings(configuration.getProperties()) .buildServiceRegistry(); //創建會話工廠對象 sessionFactory?=?configuration.buildSessionFactory(serviceRegistry); //創建會話對象 session?=?sessionFactory.openSession(); //開啟事務 transaction?=?session.beginTransaction(); } @Test public?void?test()?{ User?user?=?new?User("A1","張三",20,new?Date()); session.save(user); } @After public?void?destroy()?{ //提交事務 transaction.commit(); //關閉資源 session.close(); sessionFactory.close(); } }2016-03-10
@Before public?void?init(){ //創建配置對象并讀取classpath下的配置文件hibernate.cfg.xml Configuration?config?=?new?Configuration(); //創建serviceRegistry對象,hibernate中的任何配置和服務都必須在此對象中注冊 StandardServiceRegistryBuilder?ssrb?=?new?StandardServiceRegistryBuilder().applySettings(config.getProperties()); //這里這里看這里!! ServiceRegistry?serviceRegistry?=?ssrb.buildServiceRegistry();2016-03-02
注冊對象不對,應該用buildServiceRegistery()方法,而不是用build()方法