有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

在hibernate中使用注释时出现java异常

伙计们我是冬眠的新手。。我试图在hibernate中使用注释,但它给了我一个例外。。这是我的密码。。有什么建议吗。。提前谢谢

冬眠。cfg。xml

<?xml version='1.0' encoding='utf-8'?>
<hibernate-configuration>

<session-factory>

<!-- Related to the connection START -->
<property name="connection.driver_class">com.mysql.jdbc.Driver </property>
<property name="connection.url">jdbc:mysql://localhost:3306/mydb </property>
<property name="connection.user">root </property>
<property name="connection.password">root</property>
<!-- Related to the connection END -->

<!-- Related to hibernate properties START -->
<property name="show_sql">true</property>
<property name="dialet">org.hibernate.dialet.MYSQLDialet</property>
<property name="hbm2ddl.auto">create</property>
<!-- Related to hibernate properties END-->

<!-- Related to mapping START-->
<mapping resource="user.hbm.xml" />
<!-- Related to the mapping END -->

</session-factory>
</hibernate-configuration>

数据提供者。爪哇

import javax.persistence.*;

@Entity
@Table(name="dataprovider")
public class DataProvider {

    @Id @GeneratedValue
    @Column(name="id")
    private int user_id;
    @Column(name="name")
    private String user_name;
    @Column(name="description")
    private String user_desc;


    public int getUser_id() {
        return user_id;
    }
    public void setUser_id(int user_id) {
        this.user_id = user_id;
    }
    public String getUser_name() {
        return user_name;
    }
    public void setUser_name(String user_name) {
        this.user_name = user_name;
    }
    public String getUser_desc() {
        return user_desc;
    }
    public void setUser_desc(String user_desc) {
        this.user_desc = user_desc;
    }


}

在InsertData中。爪哇

import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.Transaction;
import org.hibernate.cfg.AnnotationConfiguration;
import org.hibernate.cfg.Configuration;

public class InsertData {
    private static SessionFactory factory;

    public static void main(String[] args) {
        factory = new AnnotationConfiguration().configure("hibernate.cfg.xml").addAnnotatedClass(DataProvider.class)
                .buildSessionFactory();
        new InsertData().insertInfo();

    }

    public void insertInfo() {
        Session session = factory.openSession();

        DataProvider provider = new DataProvider();
        provider.setUser_id(121);
        provider.setUser_name("name");
        provider.setUser_desc("desc");

        Transaction tr = session.beginTransaction();
        session.save(provider);
        System.out.println("Object Saved");

        tr.commit();
        session.close();
        factory.close();

    }

}

例外

Exception in thread "main" java.lang.NoClassDefFoundError: org/slf4j/LoggerFactory
    at org.hibernate.cfg.annotations.Version.<clinit>(Version.java:12)
    at org.hibernate.cfg.AnnotationConfiguration.<clinit>(AnnotationConfiguration.java:78)
    at InsertData.main(InsertData.java:11)
Caused by: java.lang.ClassNotFoundException: org.slf4j.LoggerFactory

共 (1) 个答案

  1. # 1 楼答案

    例外情况很明显:Hibernate需要类org.slf4j.LoggerFactory,但找不到。您需要将相应的库添加到类路径中,即您需要一个slf4j。除了冬眠。罐子