配置Hibernate时,需要导入哪些包?

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/wo3002807/article/details/11573311

配置Hibernate需要的包。

 

连接需要的MySql的驱动包mysql-connector-java-5.1.15-bin.jar。就不需要说了。还有Hibernate的核心包hibernate3.jar,也没必须要特别说明。

当我特意不导antlr-2.7.6.jar包时,会报错。

Exception in thread "main" java.lang.NoClassDefFoundError: antlr/ANTLRException
 at org.hibernate.hql.ast.ASTQueryTranslatorFactory.createQueryTranslator(ASTQueryTranslatorFactory.java:58)
 at org.hibernate.engine.query.HQLQueryPlan.<init>(HQLQueryPlan.java:98)
 at org.hibernate.engine.query.HQLQueryPlan.<init>(HQLQueryPlan.java:80)
 at org.hibernate.engine.query.QueryPlanCache.getHQLQueryPlan(QueryPlanCache.java:94)
 at org.hibernate.impl.AbstractSessionImpl.getHQLQueryPlan(AbstractSessionImpl.java:156)
 at org.hibernate.impl.AbstractSessionImpl.createQuery(AbstractSessionImpl.java:135)
 at org.hibernate.impl.SessionImpl.createQuery(SessionImpl.java:1650)
 at ManageEmployee.listEmployees(ManageEmployee.java:62)
 at ManageEmployee.main(ManageEmployee.java:27)

 

当我特意不导dom4j-1.6.1.jar包时,会报错。

Failed to create sessionFactory object.java.lang.NoClassDefFoundError: org/dom4j/DocumentException
Exception in thread "main" java.lang.ExceptionInInitializerError
 at ManageEmployee.main(ManageEmployee.java:17)
Caused by: java.lang.NoClassDefFoundError: org/dom4j/DocumentException
 at ManageEmployee.main(ManageEmployee.java:14)

当我特意不导commons-collections-3.1.jar包时,会报错

Failed to create sessionFactory object.java.lang.NoClassDefFoundError: org/apache/commons/collections/map/LRUMap
Exception in thread "main" java.lang.ExceptionInInitializerError
 at ManageEmployee.main(ManageEmployee.java:17)

当我特意不导javassist-3.4.GA.jar包时,会报错。

Failed to create sessionFactory object.java.lang.NoClassDefFoundError: javassist/util/proxy/MethodFilter
Exception in thread "main" java.lang.ExceptionInInitializerError
 at ManageEmployee.main(ManageEmployee.java:17)

当我特意不导jta-1.1.jar包时,会报错。

2922 [main] INFO org.hibernate.impl.SessionFactoryObjectFactory - Not binding factory to JNDI, no JNDI name configured
Exception in thread "main" java.lang.NoClassDefFoundError: javax/transaction/Synchronization
 at org.hibernate.impl.SessionImpl.<init>(SessionImpl.java:240)
 at org.hibernate.impl.SessionFactoryImpl.openSession(SessionFactoryImpl.java:503)
 at org.hibernate.impl.SessionFactoryImpl.openSession(SessionFactoryImpl.java:527)
 at org.hibernate.impl.SessionFactoryImpl.openSession(SessionFactoryImpl.java:535)
 at ManageEmployee.addEmployee(ManageEmployee.java:40)
 at ManageEmployee.main(ManageEmployee.java:22)

当我特意不导slf4j-api-1.5.10.jar包时,会报错。

Failed to create sessionFactory object.java.lang.NoClassDefFoundError: org/slf4j/LoggerFactory
Exception in thread "main" java.lang.ExceptionInInitializerError
 at ManageEmployee.main(ManageEmployee.java:17)
Caused by: java.lang.NoClassDefFoundError: org/slf4j/LoggerFactory
 at org.hibernate.cfg.Configuration.<clinit>(Configuration.java:151)
 at ManageEmployee.main(ManageEmployee.java:14)

当我不导入slf4j-simple-1.5.10.jar包时,会报错。

Failed to create sessionFactory object.java.lang.NoClassDefFoundError: org/slf4j/impl/StaticLoggerBinder
Exception in thread "main" java.lang.ExceptionInInitializerError
 at ManageEmployee.main(ManageEmployee.java:17)
Caused by: java.lang.NoClassDefFoundError: org/slf4j/impl/StaticLoggerBinder
 at org.slf4j.LoggerFactory.<clinit>(LoggerFactory.java:60)
 at org.hibernate.cfg.Configuration.<clinit>(Configuration.java:151)
 at ManageEmployee.main(ManageEmployee.java:14)

当slf4j的版本出现问题时,会报错。问题原因:jar文件版本冲突类org.slf4j.impl.StaticLoggerBinder在slf4j-api 中是类的公有静态变量:public static final StaticLoggerBinder SINGLETON = new StaticLoggerBinder();而在slf4j-log4j12(slf4j-nop.jar, slf4j-simple.jar, slf4j-log4j12.jar, slf4j-jdk14.jar or logback-classic.jar其中之一)中确是私有变量:private static final StaticLoggerBinder SINGLETON = new StaticLoggerBinder();

解决方案:1.修改slf的源代码,将这个变量有私有改为公有,再打包,问题可解决。

                  2.slf4j-api.jar 删除,再导入同版本问题可解决

 

Failed to create sessionFactory object.java.lang.NoClassDefFoundError: org/slf4j/impl/StaticLoggerBinder
Exception in thread "main" java.lang.ExceptionInInitializerError
 at ManageEmployee.main(ManageEmployee.java:17)
Caused by: java.lang.NoClassDefFoundError: org/slf4j/impl/StaticLoggerBinder
 at org.slf4j.LoggerFactory.<clinit>(LoggerFactory.java:60)
 at org.hibernate.cfg.Configuration.<clinit>(Configuration.java:151)
 at ManageEmployee.main(ManageEmployee.java:14)

猜你喜欢

转载自blog.csdn.net/wo3002807/article/details/11573311
今日推荐