如何为create table修复和执行这个示例Hibernate程序

时间:2015-05-07 10:17:55

标签: java hibernate

我在java中有一个简单的hibernate程序。这是一个例外,我无法理解。

我的代码是:

import org.hibernate.cfg.AnnotationConfiguration;
import org.hibernate.tool.hbm2ddl.SchemaExport;

public class TestEmployee {

 public static void main(String[] args) {
    AnnotationConfiguration config = new AnnotationConfiguration();
    config.addAnnotatedClass(Employee.class);
    config.configure("hibernate.cfg.xml");

    new SchemaExport(config).create(true, true);

}

}

错误是:

SLF4J: slf4j-api 1.6.x (or later) is incompatible with this binding.
SLF4J: Your binding is version 1.5.5 or earlier.
SLF4J: Upgrade your binding to version 1.6.x. or 2.0.x
Exception in thread "main" java.lang.NoSuchMethodError: org.slf4j.impl.StaticLoggerBinder.getSingleton()Lorg/slf4j/impl/StaticLoggerBinder;
        at org.slf4j.LoggerFactory.bind(LoggerFactory.java:121)
        at org.slf4j.LoggerFactory.performInitialization(LoggerFactory.java:111)
        at org.slf4j.LoggerFactory.getILoggerFactory(LoggerFactory.java:268)
        at org.slf4j.LoggerFactory.getLogger(LoggerFactory.java:241)
        at org.slf4j.LoggerFactory.getLogger(LoggerFactory.java:254)
        at org.hibernate.cfg.Configuration.<clinit>(Configuration.java:197)
        at com.Hibernate.chapter1.TestEmployee.main(TestEmployee.java:10)**

注意:我的日食中的AnnotationConfiguration()上有一行。

原因是什么?如何解决?

1 个答案:

答案 0 :(得分:1)

错误地给出了您的问题的原因

SLF4J: slf4j-api 1.6.x (or later) is incompatible with this binding.
SLF4J: Your binding is version 1.5.5 or earlier.
SLF4J: Upgrade your binding to version 1.6.x. or 2.0.x

SLF4J绑定指定一个工件,例如slf4j-jdk14.jar或slf4j-log4j12.jar,用于将slf4j绑定到底层日志框架,例如java.util.logging和log4j。 混合混合不同版本的slf4j-api.jar和SLF4J绑定可能会导致问题。例如,如果您使用的是slf4j-api-1.7.12.jar,那么您还应该使用slf4j-simple-1.7.12.jar,使用slf4j-simple-1.5.5.jar将无效。

从客户端的角度来看,所有版本的slf4j-api都是兼容的。对于任何N和M,使用slf4j-api-N.jar编译的客户端代码与slf4j-api-M.jar完全匹配。您只需要确保绑定的版本与slf4j-api.jar的版本匹配。您不必担心项目中给定依赖项使用的slf4j-api.jar的版本。您可以随时使用任何版本的slf4j-api.jar,只要slf4j-api.jar的版本及其绑定匹配,您应该没问题。

要使hibernate工作,你可以在项目中添加与hibernate相关的jar文件。它包括名称以&#34; slf4j&#34;开头的罐子。要修复错误,你需要确保所有的slf4j jar都是相同的version.ie(如果你使用的是slf4j-api-1.7.12.jar,那么你也应该使用slf4j-simple-1.7.12.jar,使用slf4j -simple-1.5.5.jar不起作用。)

将所有slf4j罐子更新到最新版本应该解决这个问题,或者你可以检查所有的slf4j罐子并更换有问题的罐子。

下载slf4j的链接位于

之下

http://www.slf4j.org/download.html

有关错误和jar的更多信息,请访问

http://www.slf4j.org/codes.html