Hibernate报错java.lang.Exception…

学习搭建Hibernate开发时,报错java.lang.ExceptionInInitializerError。


具体情况:项目使用的相关文件 :hibernate-distribution-3.3.2.GA      hibernate-annotations-3.4.0.GA       slf4j-1.5.8 

我使用的Hibernate文件可以从这里下载    http://pan.baidu.com/share/link?shareid=121558&uk=4077895710

  slf4j 1.5.8     http://pan.baidu.com/share/link?shareid=121561&uk=4077895710


步骤如下:

   1、新建Java Project ,

         导入 hibernate-distribution-3.3.2.GA下的 hibernate3.jar 以及 /lib/required  下所有的 jar,如下 :

                   antlr-2.7.6.jar  commons-collections-3.1.jar  dom4j-1.6.1.jar   

                  javassist-3.9.0.GA.jar     jta-1.1.jar   slf4j-api-1.5.8.jar   

   2、再倒入slf4j-1.5.8文件里面slf4j的实现包 slf4j-nop-1.5.8.jar 

   3、导入hibernate-annotations-3.4.0.GA下 hibernate-annotations.jar及lib下

                ejb3-persistence.jar和 hibernate-commons-annotations.jar

   4、导入mysql驱动 4、mysql-connector-java-5.1.7-bin.jar


 当时为了将Hibernate所有的依赖的jar放在一起,我的导入方式如下:

      windows -> Preferences ->Java  ->Build Path ->User Libraries -> New ,写入名称Hibernate3.3,

     同时勾选个下面的“System Library(added to the boot class )path”  ,这是错误的原因。


       

        将新建的这个 User Library加入到项目中。

   



最后项目中的Hibernate共有11个jar文件:

 


然后按照常规的写了一个POJO类,

代码  :User.java

 

[java]   view plain copy print ?
  1. package com.hibernate;  
  2.   
  3. import javax.persistence.Entity;  
  4. import javax.persistence.Id;  
  5.   
  6. @Entity  
  7. public class User implements java.io.Serializable  
  8.     private int id;  
  9.     private String name;  
  10.     private String passwd;  
  11.       
  12.     @Id  
  13.     public int getId()  
  14.         return id;  
  15.      
  16.     public void setId(int id)  
  17.         this.id id;  
  18.      
  19.     public String getName()  
  20.         return name;  
  21.      
  22.     public void setName(String name)  
  23.         this.name name;  
  24.      
  25.     public String getPasswd()  
  26.         return passwd;  
  27.      
  28.     public void setPasswd(String passwd)  
  29.         this.passwd passwd;  
  30.      
  31.       
  32.  

 

配置文件 :hibernate.cfg.xml

 

[html]   view plain copy print ?
  1.     "-//Hibernate/Hibernate Configuration DTD 3.0//EN"  
  2.     "http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">  
  3.   
  4. <</SPAN>hibernate-configuration>  
  5. <</SPAN>session-factory>  
  6.     <</SPAN>property name="connection.url">jdbc:mysql://localhost:3306/jdbc</</SPAN>property>  
  7.     <</SPAN>property name="connection.driver_class">com.mysql.jdbc.Driver</</SPAN>property>  
  8.     <</SPAN>property name="connection.username">root</</SPAN>property>  
  9.     <</SPAN>property name="connection.password">123</</SPAN>property>  
  10.     <</SPAN>property name="dialect">org.hibernate.dialect.MySQLDialect</</SPAN>property>  
  11.     <</SPAN>property name="show_sql">true</</SPAN>property>  
  12.     <</SPAN>property name="format_sql">true</</SPAN>property>  
  13.     <</SPAN>property name="connection.pool_size">1</</SPAN>property>    
  14.     <</SPAN>property name="cache.provider_class">org.hibernate.cache.NoCacheProvider</</SPAN>property>  
  15.     <</SPAN>property name="current_session_context_class">thread</</SPAN>property>  
  16.       
  17.     <</SPAN>mapping class="com.hibernate.User" />  
  18.   
  19. </</SPAN>session-factory>  
  20. </</SPAN>hibernate-configuration>  

自动建表类 :CreateDB.java

 

 

[java]   view plain copy print ?
  1. import org.hibernate.cfg.AnnotationConfiguration;  
  2. import org.hibernate.cfg.Configuration;  
  3. import org.hibernate.tool.hbm2ddl.SchemaExport;  
  4.   
  5. public class CreateDB  
  6.     public static void main(String[] args)  
  7.       
  8.         Configuration cfg new AnnotationConfiguration().configure();  
  9.         SchemaExport sExport new SchemaExport(cfg);  
  10.           
  11.         sExport.create(truetrue);    
  12.      
  13.  

运行报错报错:

 



查了半天没找到原因,有的说是没有 log4j.properties 这个文件 ,我加入后还是报错。

最后百度老久发现原来是将User Library加入到System Library的原因 ,编辑一下刚才新建的User Library,

System Library(added to the boot class )path 勾掉(不勾选)就神奇的好了,

具体是什么原理我也不知道,哪位大神要是知道,还望不惜赐教 !!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值