javahibernatejunit4mysqlconfiguration
错误信息
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.(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
hibernate.cfg.xml
rootrootcom.mysql.jdbc.driverjdbc:mysql://localhost:3306/hibernateorg.hibernate.dialect.mysqlinnodbdialecttruetruecreate
news.hbm.xml
news.java
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 + ]; }}
hibernatetest.java
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(); }}
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错误, 但不了解, 麻烦解答