hibenate解压后很多文件夹,需要导入哪些

2025-05-20 02:15:12
推荐回答(2个)
回答1:

lib 路径下的 required、jpa 子目录下所有 JAR 包添加到应用的类加载路径中。(数据库操作别忘了加入 JDBC 驱动)


回答2:

配置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.(HQLQueryPlan.java:98)
at org.hibernate.engine.query.HQLQueryPlan.(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.(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.(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.(LoggerFactory.java:60)
at org.hibernate.cfg.Configuration.(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.(LoggerFactory.java:60)
at org.hibernate.cfg.Configuration.(Configuration.java:151)
at ManageEmployee.main(ManageEmployee.java:14)