提问更新一下
学校授课J2EE开发,初接触Hibernate,做了个小程序,跑不出来,折腾3天了,,,求大神赐教,,,(T_T)
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;
}
}
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>
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](http://img.mukewang.com/5815dc1d000128bd03370351.jpg)
已有的jar包:
![5815dd5a0001cb1b03270624.jpg](http://img.mukewang.com/5815dd5a0001cb1b03270624.jpg)
![5815dd5b0001a12a03510627.jpg](http://img.mukewang.com/5815dd5b0001a12a03510627.jpg)
![5815dd5b000136ae03540632.jpg](http://img.mukewang.com/5815dd5b000136ae03540632.jpg)
![5815dd5b00012feb03430232.jpg](http://img.mukewang.com/5815dd5b00012feb03430232.jpg)
已经百度了好久,也没找到答案。。。刚刚接触hibernate,一窍不通,折腾3天了,求各位指导,先谢谢各位了