13.1 hibernate下载及HibernateInitialize类

原创 2016年08月31日 10:57:08

版本:下载较新的4.3.5版本,
下载地址:http://download.csdn.net/detail/solio5/7640023
下载的压缩文件,把解压缩的lib文件夹放到某个地方。
在eclipse中创建叫My_Hibernate的library,它需要添加很多jar包,此时添加的是hibernate/lib/required下的多个jar文件。以后用此library即可。

问1:hibernate的版本与代码啥关系?
答:比如在获取sessionFactory时,不同的版本代码不一样。
如果某版本的代码不对应对应的版本,会出现错误比如:
java.lang.NoClassDefFoundError:
Could not initialize class com.mr.hibernate.HibernateInitialize

比如对于HibernateInitialize类,里面两处求sessionFactory就是不同版本对应不同代码。

//  HibernateInitialize.java
package com.mr.hibernate;

import org.hibernate.HibernateException;
import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.cfg.Configuration;
import org.hibernate.boot.registry.StandardServiceRegistryBuilder;
/**
 * Hibernate初始化类
 *
 */
public class HibernateInitialize {
    private static final ThreadLocal<Session> threadLocal = new ThreadLocal<Session>();//ThreadLocal对象
    private static SessionFactory sessionFactory = null;
    //静态块
    static {
        try {
            /*  原来书本版本的
            // 加载Hibernate配置文件
            Configuration cfg = new Configuration().configure();
            sessionFactory = cfg.buildSessionFactory();
            */
            // 网上对应4.3.5版本的
            Configuration configuration = new Configuration().configure();
            StandardServiceRegistryBuilder builder = new StandardServiceRegistryBuilder().
            applySettings(configuration.getProperties());
            sessionFactory = configuration.buildSessionFactory(builder.build());

        } catch (Exception e) {
            System.err.println("创建会话工厂失败");
            e.printStackTrace();
        }
    }
    /**    
     *  @throws HibernateException
     */
    public static Session getSession() throws HibernateException {
        Session session = (Session) threadLocal.get();
        if (session == null || !session.isOpen()) {
            if (sessionFactory == null) {
                rebuildSessionFactory();
            }
            session = (sessionFactory != null) ? sessionFactory.openSession(): null;
            threadLocal.set(session);
        }

        return session;
    }

    public static void rebuildSessionFactory() {
        try {
            /*  原来书本的
            // 加载Hibernate配置文件
            Configuration cfg = new Configuration().configure();
            sessionFactory = cfg.buildSessionFactory();
            */
            // 网上的
            Configuration configuration = new Configuration().configure();
            StandardServiceRegistryBuilder builder = new StandardServiceRegistryBuilder().
            applySettings(configuration.getProperties());
            sessionFactory = configuration.buildSessionFactory(builder.build());

        } catch (Exception e) {
            System.err.println("创建会话工厂失败");
            e.printStackTrace();
        }
    }
    /** 
     * @return SessionFactory对象
     */
    public static SessionFactory getSessionFactory() {
        return sessionFactory;
    }
    /**     
     *  @throws HibernateException
     */
    public static void closeSession() throws HibernateException {
        Session session = (Session) threadLocal.get();
        threadLocal.set(null);//
        if (session != null) {
            session.close();
        }
    }
}

参见解答:
http://stackoverflow.com/questions/26860762/java-lang-noclassdeffounderror-could-not-initialize-class-xxx-xxx-xxx-hibernate

版权声明:本文为博主原创文章,未经博主允许不得转载。

hibernate入门第三课 导入必要的jar包

在使用eclipse开发项目的时候,经常会遇到导入各种jar包的情况。 每次创建项目都要导入一个个的导入,是不是很麻烦。 如何把经常用到的jar包封装起来? 下面就来学习eclipse创建和使用用...
  • wei_chong_chong
  • wei_chong_chong
  • 2016年11月09日 22:07
  • 2356

Hibernate之必须导入jar包

Hibernate必须导入的包              hibernate是ORM的解决方案,其底层对数据库的操作依赖于JDBC,所以必须先取得JDBC驱动程序,在这使用的是MySQL,所以必须至先...
  • tunni
  • tunni
  • 2017年02月11日 12:49
  • 1291

使用Spring整合Hibernate的小例子,内含所有jar包导入Eclipse即可运行

代码下载链接:  http://download.csdn.net/detail/u013803262/8532881 ssh框架是当前流行的主流框架,广泛的运用与JavaEE企业级应用...
  • u013803262
  • u013803262
  • 2015年03月25日 16:26
  • 1914

quartus_II_13.1下载链接

  • 2017年11月16日 13:45
  • 823B
  • 下载

passbox 13.1

  • 2014年09月27日 18:16
  • 1.26MB
  • 下载

Quartus_II_13.1 64位破解器

  • 2017年11月02日 11:25
  • 105KB
  • 下载

DevExpress(13.1-15.2) 破解工具

  • 2017年09月07日 10:18
  • 1003KB
  • 下载

Crack_QII_13.1_Windows_new_破解

  • 2014年05月11日 22:16
  • 173KB
  • 下载

EDI System User Guide Product Version 13.1

  • 2014年01月27日 21:37
  • 20.01MB
  • 下载

金蝶K3-WISE V13.1加密狗驱动-50用户补丁

金蝶K3 WISE——全面应用、完整协同、敏捷制造 金蝶K3 WISE,中小企业管理系统,融合先进管理模式与业务模型的中小企业ERP,财务管理、人力资源管理、客户关系管理等多项功...
  • mfsuncom
  • mfsuncom
  • 2016年05月26日 11:39
  • 4601
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:13.1 hibernate下载及HibernateInitialize类
举报原因:
原因补充:

(最多只允许输入30个字)