Heim  >  Artikel  >  Datenbank  >  java-Java Hibernate运行问题

java-Java Hibernate运行问题

WBOY
WBOYOriginal
2016-06-06 09:35:341346Durchsuche

javahibernatejunit4mysqlconfiguration

错误信息

<code> java.lang.NoClassDefFoundError: javax/transaction/SystemException    at java.lang.Class.forName0(Native Method)    at java.lang.Class.forName(Class.java:348)    at org.jboss.logging.Logger$1.run(Logger.java:2554)    at java.security.AccessController.doPrivileged(Native Method)    at org.jboss.logging.Logger.getMessageLogger(Logger.java:2529)    at org.jboss.logging.Logger.getMessageLogger(Logger.java:2516)    at org.hibernate.internal.CoreLogging.messageLogger(CoreLogging.java:28)    at org.hibernate.internal.CoreLogging.messageLogger(CoreLogging.java:24)    at org.hibernate.cfg.Configuration.<clinit>(Configuration.java:86)    at com.lee.hibernate.HibernateTest.test(HibernateTest.java:23)    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)    at java.lang.reflect.Method.invoke(Method.java:497)    at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:50)    at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)    at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:47)    at org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:17)    at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:325)    at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:78)    at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:57)    at org.junit.runners.ParentRunner$3.run(ParentRunner.java:290)    at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:71)    at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:288)    at org.junit.runners.ParentRunner.access$000(ParentRunner.java:58)    at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:268)    at org.junit.runners.ParentRunner.run(ParentRunner.java:363)    at org.eclipse.jdt.internal.junit4.runner.JUnit4TestReference.run(JUnit4TestReference.java:86)    at org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:38)    at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:459)    at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:675)    at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:382)    at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:192)Caused by: java.lang.ClassNotFoundException: javax.transaction.SystemException    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)    ... 33 more</clinit></code>

hibernate.cfg.xml

<code> <?xml version="1.0" encoding="UTF-8"?><hibernate-configuration>    <session-factory>        <!-- 数据库的基本信息 -->        <property name="hibernate.connection.username">root</property>        <property name="hibernate.connection.password">root</property>        <property name="hibernate.connection.driver_class">com.mysql.jdbc.Driver</property>        <property name="hibernate.connection.url">jdbc:mysql://localhost:3306/hibernate</property>        <!-- Hibernate基本信息 -->        <!-- Hibernate设置数据库方言 -->        <property name="hibernate.dialect">org.hibernate.dialect.MySQLInnoDBDialect</property>        <!-- 是否在控制台显示SQL语句 -->        <property name="show_sql">true</property>        <!-- 格式化SQL语句 -->        <property name="format_sql">true</property>        <!-- 指定自动生成数据表策略 -->        <property name="hibernate.hbm2ddl.auto">create</property>        <!-- 关联.hbm.xml对象 -->        <mapping resource="/com/lee/hibernate/News.hbm.xml"></mapping>    </session-factory></hibernate-configuration></code>

News.hbm.xml

<code> <?xml version="1.0"?><!-- Generated 2015-11-27 21:27:39 by Hibernate Tools 3.5.0.Final --><hibernate-mapping>    <class name="com.lee.hibernate.News" table="NEWS">        <id name="id" type="java.lang.Integer">            <column name="ID"></column>            <generator class="native"></generator>        </id>        <property name="title" type="java.lang.String">            <column name="TITLE"></column>        </property>        <property name="author" type="java.lang.String">            <column name="AUTHOR"></column>        </property>        <property name="date" type="java.sql.Date">            <column name="DATE"></column>        </property>    </class></hibernate-mapping></code>

News.java

<code> package com.lee.hibernate;import java.sql.Date;public class News {    private Integer id;    private String title;    private String author;    private Date date;    public Integer getId() {        return id;    }    public void setId(Integer id) {        this.id = id;    }    public String getTitle() {        return title;    }    public void setTitle(String title) {        this.title = title;    }    public String getAuthor() {        return author;    }    public void setAuthor(String author) {        this.author = author;    }    public Date getDate() {        return date;    }    public void setDate(Date date) {        this.date = date;    }    public News() {        super();    }    public News(String title, String author, Date date) {        super();        this.title = title;        this.author = author;        this.date = date;    }    @Override    public String toString() {        return "News [id=" + id + ", title=" + title + ", author=" + author + ", date=" + date + "]";    }}</code>

HibernateTest.java

<code> package com.lee.hibernate;import java.sql.Date;import org.hibernate.Session;import org.hibernate.SessionFactory;import org.hibernate.Transaction;//import org.hibernate.boot.registry.StandardServiceRegistryBuilder;import org.hibernate.cfg.Configuration;//import org.hibernate.service.ServiceRegistry;import org.junit.Test;public class HibernateTest {    @Test    public void test() {        //1 创建一个SessionFactory对象        SessionFactory sessionFactory = null;        //1) 创建Configuration对象: 对应hibernate的基本配置信息和对象映射信息        Configuration configuration = new Configuration().configure();        sessionFactory = configuration.buildSessionFactory();        //2)创建sessionRegistry对象: hibernate 4.x新添加的对象        //hibernate的任何配置和服务都需要在该对象注册后才能有效.//      ServiceRegistry serviceRegistry = //              new StandardServiceRegistryBuilder().//                  applySettings(configuration.getProperties())//                      .build();        //3)//      sessionFactory = configuration.buildSessionFactory(sessionRegistry);        //2 创建一个Session对象        Session session = sessionFactory.openSession();        //3 开启事务        Transaction transaction = session.beginTransaction();        //4 执行保存操作        News news = new News("Java", "Lee", new Date(new java.util.Date().getTime()));        session.save(news);        //5 提交事务        transaction.commit();        //6 关闭Session        session.close();        //7 关闭SessionFactory对象        sessionFactory.close();    }}</code>

hibernate框架是5.0.0.Final版本
mysql-jdbc驱动是5.1.37-bin版本
JUnit是4.10版本
Java8
Eclipse Version: Mars.1 Release (4.5.1)
Windows10

Configuration错误, 但不了解, 麻烦解答

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn