求解决 SessionFactory 为什么创建失败?

CoderPrince CoderPrince 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
我用的是Hibernate4.2.4,创建SessionFactory失败了。。Hibernate必须的8个jar包都加进来了,没问题的。求各位帮忙看看。 新手,挺急的!……


public class HibernateUtil {

private static SessionFactory sessionFactory;
private static ThreadLocal<Session> threadLocal;

static{

try {
//创建工厂
Configuration cfg = new Configuration().configure();
ServiceRegistry serviceRegistry = new ServiceRegistryBuilder().applySettings(cfg.getProperties()).buildServiceRegistry();
sessionFactory = cfg.buildSessionFactory(serviceRegistry);

} catch (HibernateException e) {
System.err.println(e.getMessage());
}

threadLocal = new ThreadLocal<Session>();
}

private HibernateUtil(){

}

// 获取Session
public static Session getSession()throws HibernateException{
Session session = threadLocal.get();
if(session==null){

if(sessionFactory==null){
System.out.println("sessionFactory为空!!!");
}

// 问题出在这里,openSession的时候报空指针,所以我在上面判断sessionFactory,
// 结果确实输出了 sessionFactory为空!!! 求解决sessionFactory 为什么创建失败?

session = sessionFactory.openSession();
threadLocal.set(session);

}
return session;
}

// 关闭Session
public static void closeSession()throws HibernateException{
Session session = threadLocal.get();
if(session!=null){
session.close();
}
threadLocal.set(null);
}

}


调用测试代码:


public class Test {

Session session;
Transaction transaction;

@org.junit.Test
public void test(){
News news = new News("今晚武汉有雨","本报讯:预计今晚武汉地区局部有中到大雨,请注意防范",new Date());
System.out.println(news);
session = HibernateUtil.getSession();
transaction = session.beginTransaction();
session.save(news);
transaction.commit();
HibernateUtil.closeSession();
}
}
...全文

相关推荐

评论 7
收藏 已收藏
分享
返回顶部
CoderPrince
Java EE 67,535 成员 225,843 内容