大神求解,hibernate4.2.1的一个HelloWorld例子配置搞了两天
16lz
2021-01-22
要毕业了,什么也不懂,最近想学三大框架,刚学完STUTRS2,昨天开始学hibernate,教程第一讲就弄了两天还停留在下面这个问题,急死人了。教程上说的是hibernate3.2,但是我现在到官网下了个4.2的版本,实在是整天两天没成功运行,后面的教程就一直挡着了,这个是照着教程上看的写的实体类Student,
测试类:
Student.hbm.xml配置:
hibernate.cfg.xml配置:
工程目录,帮看下对应的JAR包是否齐全?
结果是 ,运行后出错,早上搞到晚上睡觉也弄不好,网上百度谷歌也找不出问题,网上对应的和我这版本的问题资料太少,错误代码如下:
Causedby:org.xml.sax.SAXParseException
报这个错误表示xml文件解析错误,我看了一下,发现你的hibernate.hbm.xml文件有没删掉的注释符合哦,
23行和32行的结尾有“-->”,是不是删漏了?
去掉后,你再试试
packagecom.luhy.hibernate.model;
publicclassStudent{
privateintid;
privateStringname;
privateintage;
publicStudent(){
}
publicintgetId(){
returnid;
}
publicvoidsetId(intid){
this.id=id;
}
publicStringgetName(){
returnname;
}
publicvoidsetName(Stringname){
this.name=name;
}
publicintgetAge(){
returnage;
}
publicvoidsetAge(intage){
this.age=age;
}
}
测试类:
packagecom.luhy.hibernate.test;
importorg.hibernate.Session;
importorg.hibernate.SessionFactory;
importorg.hibernate.cfg.Configuration;
importorg.hibernate.service.ServiceRegistry;
importorg.hibernate.service.ServiceRegistryBuilder;
importcom.luhy.hibernate.model.Student;
publicclassTest{
publicstaticvoidmain(String[]args){
Studentst=newStudent();
st.setId(2);
st.setName("学生");
st.setAge(20);
Configurationcfg=newConfiguration();
cfg.configure();
ServiceRegistryserviceRegistry=newServiceRegistryBuilder().applySettings(cfg.getProperties()).buildServiceRegistry();
SessionFactorysf=cfg.configure().buildSessionFactory(serviceRegistry);
Sessionsession=sf.openSession();
session.beginTransaction();//事务开启
session.save(st);//保存对象
session.getTransaction().commit();
session.close();
sf.close();
}
}
Student.hbm.xml配置:
<?xmlversion="1.0"encoding="utf-8"?>
<!DOCTYPEhibernate-mappingPUBLIC
"-//Hibernate/HibernateMappingDTD3.0//EN"
"http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd">
<hibernate-mappingpackage="org.hibernate.tutorial.domain">
<classname="Student"table="student">
<idname="id"column="id"/>
<propertyname="name"column="name"/>
<propertyname="age"column="age"/>
</class>
</hibernate-mapping>
hibernate.cfg.xml配置:
<?xmlversion='1.0'encoding='utf-8'?>
<!DOCTYPEhibernate-configurationPUBLIC
"-//Hibernate/HibernateConfigurationDTD3.0//EN"
"http://www.hibernate.org/dtd/hibernate-configuration-3.0.dtd">
<hibernate-configuration>
<session-factory>
<!--Databaseconnectionsettings-->
<propertyname="connection.driver_class">com.mysql.jdbc.Driver</property>
<propertyname="connection.url">jdbc:mysql://localhost:3306/hibernate</property>
<propertyname="connection.username">root</property>
<propertyname="connection.password">lu5896848</property>
<!--JDBCconnectionpool(usethebuilt-in)-->
<!--<propertyname="connection.pool_size">1</property>-->
<!--SQLdialect-->
<propertyname="dialect">org.hibernate.dialect.MySQLDialect</property>
<!--EnableHibernate'sautomaticsessioncontextmanagement-->
<propertyname="current_session_context_class">thread</property>-->
<!--Disablethesecond-levelcache-->
<propertyname="cache.provider_class">org.hibernate.cache.internal.NoCacheProvider</property>
<!--EchoallexecutedSQLtostdout-->
<propertyname="show_sql">true</property>
<!--Dropandre-createthedatabaseschemaonstartup-->
<propertyname="hbm2ddl.auto">update</property>-->
<mappingresource="com/luhy/hibernate/model/Student.hbm.xml"/>
</session-factory>
</hibernate-configuration>
工程目录,帮看下对应的JAR包是否齐全?
结果是 ,运行后出错,早上搞到晚上睡觉也弄不好,网上百度谷歌也找不出问题,网上对应的和我这版本的问题资料太少,错误代码如下:
2013-5-1217:02:51org.hibernate.annotations.common.Version<clinit>
INFO:HCANN000001:HibernateCommonsAnnotations{4.0.1.Final}
2013-5-1217:02:51org.hibernate.VersionlogVersion
INFO:HHH000412:HibernateCore{4.2.1.Final}
2013-5-1217:02:51org.hibernate.cfg.Environment<clinit>
INFO:HHH000206:hibernate.propertiesnotfound
2013-5-1217:02:51org.hibernate.cfg.EnvironmentbuildBytecodeProvider
INFO:HHH000021:Bytecodeprovidername:javassist
2013-5-1217:02:51org.hibernate.cfg.Configurationconfigure
INFO:HHH000043:Configuringfromresource:/hibernate.cfg.xml
2013-5-1217:02:51org.hibernate.cfg.ConfigurationgetConfigurationInputStream
INFO:HHH000040:Configurationresource:/hibernate.cfg.xml
Exceptioninthread"main"org.hibernate.MappingException:invalidconfiguration
atorg.hibernate.cfg.Configuration.doConfigure(Configuration.java:2028)
atorg.hibernate.cfg.Configuration.configure(Configuration.java:1945)
atorg.hibernate.cfg.Configuration.configure(Configuration.java:1924)
atcom.luhy.hibernate.test.Test.main(Test.java:20)
Causedby:org.xml.sax.SAXParseException:Thecontentofelementtype"session-factory"mustmatch"(property*,mapping*,(class-cache|collection-cache)*,event*,listener*)".
atcom.sun.org.apache.xerces.internal.util.ErrorHandlerWrapper.createSAXParseException(ErrorHandlerWrapper.java:195)
atcom.sun.org.apache.xerces.internal.util.ErrorHandlerWrapper.error(ErrorHandlerWrapper.java:131)
atcom.sun.org.apache.xerces.internal.impl.XMLErrorReporter.reportError(XMLErrorReporter.java:384)
atcom.sun.org.apache.xerces.internal.impl.XMLErrorReporter.reportError(XMLErrorReporter.java:318)
atcom.sun.org.apache.xerces.internal.impl.dtd.XMLDTDValidator.handleEndElement(XMLDTDValidator.java:2017)
atcom.sun.org.apache.xerces.internal.impl.dtd.XMLDTDValidator.endElement(XMLDTDValidator.java:901)
atcom.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanEndElement(XMLDocumentFragmentScannerImpl.java:1782)
atcom.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl$FragmentContentDriver.next(XMLDocumentFragmentScannerImpl.java:2938)
atcom.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl.next(XMLDocumentScannerImpl.java:648)
atcom.sun.org.apache.xerces.internal.impl.XMLNSDocumentScannerImpl.next(XMLNSDocumentScannerImpl.java:140)
atcom.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanDocument(XMLDocumentFragmentScannerImpl.java:511)
atcom.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:808)
atcom.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:737)
atcom.sun.org.apache.xerces.internal.parsers.XMLParser.parse(XMLParser.java:119)
atcom.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.parse(AbstractSAXParser.java:1205)
atcom.sun.org.apache.xerces.internal.jaxp.SAXParserImpl$JAXPSAXParser.parse(SAXParserImpl.java:522)
atorg.dom4j.io.SAXReader.read(SAXReader.java:465)
atorg.hibernate.cfg.Configuration.doConfigure(Configuration.java:2025)
...3more
24 个解决方案
#1
Causedby:org.xml.sax.SAXParseException
报这个错误表示xml文件解析错误,我看了一下,发现你的hibernate.hbm.xml文件有没删掉的注释符合哦,
23行和32行的结尾有“-->”,是不是删漏了?
去掉后,你再试试
更多相关文章
- sqlserver2005 express 未指定的错误 MS Visual Database Tools
- MySQL This function has none of DETERMINISTIC, NO SQL...错误
- 最新MySQL安装配置教程
- 超时时间已到.错误及Max Pool Size设置
- EventBus的使用,注意事项,错误分析
- Android Studio 出现 Gradle's dependency cache may be corrupt
- Android基础入门教程——7.4 Android调用WebService
- 【Android Studio】解决adb not responding if youd like to ret
- Java 简单解决springmvc获取properties文件里面中文内容出现论码