hibernate报错:缺少Class?无法Configuration?

提问更新一下

学校授课J2EE开发,初接触Hibernate,做了个小程序,跑不出来,折腾3天了,,,求大神赐教,,,(T_T)

  1. Student.java

    package com.student;

    import javax.persistence.Basic;
    import javax.persistence.Column;
    import javax.persistence.Entity;
    import javax.persistence.Id;
    import java.sql.Date;

    @Entity
    public class Student {
        private int id;
        private String name;
        private String gender;
        private Date birthday;
        private String address;

        @Id
        @Column(name = "ID")
        public int getId() {
            return id;
        }

        public void setId(int id) {
            this.id = id;
        }

        @Basic
        @Column(name = "NAME")
        public String getName() {
            return name;
        }

        public void setName(String name) {
            this.name = name;
        }

        @Basic
        @Column(name = "GENDER")
        public String getGender() {
            return gender;
        }

        public void setGender(String gender) {
            this.gender = gender;
        }

        @Basic
        @Column(name = "BIRTHDAY")
        public Date getBirthday() {
            return birthday;
        }

        public void setBirthday(Date birthday) {
            this.birthday = birthday;
        }

        @Basic
        @Column(name = "ADDRESS")
        public String getAddress() {
            return address;
        }

        public void setAddress(String address) {
            this.address = address;
        }

    }

  2. hibernate.cfg.xml

    <?xml version='1.0' encoding='utf-8'?>
    <!DOCTYPE hibernate-configuration PUBLIC
            "-//Hibernate/Hibernate Configuration DTD//EN"
            "http://www.hibernate.org/dtd/hibernate-configuration-3.0.dtd">
    <hibernate-configuration>
        <session-factory>
            <property name="connection.url">jdbc:mysql://localhost:3306/sakila</property>
            <property name="connection.driver_class">com.mysql.jdbc.Driver</property>
            <property name="connection.username">Hibernate</property>
            <property name="connection.password">9627</property>
            <property name="connection.pool_size">1</property>
            <property name="dialect">org.hibernate.dialect.MySQLInnoDBDialect</property>
            <property name="javax.persistence.validation.mode">none</property>
            <property name="current_session_context_class">thread</property>
            <property name="show_sql">true</property>
            <property name="format_sql">true</property>
            <property name="hbm2ddl.auto">update</property>
            <mapping class="com.student.Student"/>
            <!-- DB schema will be updated if needed -->
            <!-- <property name="hbm2ddl.auto">update</property> -->
        </session-factory>
    </hibernate-configuration>
  3. Main.java

    import com.student.Student;
    import org.hibernate.*;
    import org.hibernate.cfg.Configuration;
    import org.hibernate.service.ServiceRegistry;
    import org.hibernate.boot.registry.StandardServiceRegistryBuilder;

    import java.sql.Date;

    public class Main {
        private static final SessionFactory ourSessionFactory;
        private static final ServiceRegistry serviceRegistry;

        static {
            try {
                Configuration configuration = new Configuration();
                configuration.configure();

                serviceRegistry = new StandardServiceRegistryBuilder().applySettings(configuration.getProperties()).build();
                ourSessionFactory = configuration.buildSessionFactory(serviceRegistry);
            } catch (Throwable ex) {
                throw new ExceptionInInitializerError(ex);
            }
        }

        private static Session getSession() throws HibernateException {
            return ourSessionFactory.openSession();
        }

        public static void main(final String[] args) throws Exception {
            try (Session session = getSession()) {
                Transaction transaction = session.beginTransaction();
                Student student = new Student();
                student.setId(1000);
                student.setName("Adam");
                student.setGender("A");
                student.setBirthday(Date.valueOf("19950101"));
                student.setAddress("南京");
                session.save(student);
                Student stu = session.get(Student.class, 1);
                System.out.println("ID=" + stu.getId()
                        + "\nName=" + stu.getName()
                        + "\nGender=" + stu.getGender()
                        + "\nBirthday=" + stu.getBirthday()
                        + "\nAddress=" + stu.getAddress());
                transaction.commit();
                ourSessionFactory.close();
            }
        }
    }

运行Main()后,报错:

Exception in thread "main" java.lang.NoClassDefFoundError: org/hibernate/service/ServiceRegistry
    at java.lang.Class.forName0(Native Method)
    at java.lang.Class.forName(Class.java:264)
    at com.intellij.rt.execution.application.AppMain.main(AppMain.java:123)
Caused by: java.lang.ClassNotFoundException: org.hibernate.service.ServiceRegistry
    at java.net.URLClassLoader.findClass(URLClassLoader.java:381)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
    at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:331)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
    ... 3 more

Process finished with exit code 1

工程目录:

http://img.mukewang.com/5815dc1d000128bd03370351.jpg

已有的jar包:

5815dd5a0001cb1b03270624.jpg

5815dd5b0001a12a03510627.jpg

5815dd5b000136ae03540632.jpg

5815dd5b00012feb03430232.jpg

已经百度了好久,也没找到答案。。。刚刚接触hibernate,一窍不通,折腾3天了,求各位指导,先谢谢各位了

苏天安戎
浏览 4242回答 2
2回答

苏天安戎

咦?没人么   T_T
打开App,查看更多内容
随时随地看视频慕课网APP