虽然说 都用annotation了,但是刚学还是试了下xml。结果不太熟悉xml的我,悲剧了一回。想写个helloWorld,都被无情地鄙视了。耽误了好长时间。仅以此文告慰一下还是菜鸟的我。
写了个Student.hbm.hibernate
<?xml version="1.0" encoding="UTF-8"?> <hibernate-mapping package="skj.vdo"> <class name="Student" table="Student"> <id name="id" column="sno"></id> <property name="name" column="name"/> <property name="age" column="age"/> <property name="birthday" column="birthday"/> </class> </hibernate-mapping>
hibernate.cfg.xml直接从文档中拷贝的。改了该数据库配置方言之类……
来了个Test,运行时,发现好多异常啊。原来木有些dtd,验证通不过。
<!DOCTYPE hibernate-mapping PUBLIC
"-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd">
唉:
Initial SessionFactory creation failed.org.hibernate.InvalidMappingException: Unable to read XML Exception in thread "main" java.lang.ExceptionInInitializerError at skj.util.HibernateUtil.buildSessionFactory(HibernateUtil.java:18) at skj.util.HibernateUtil.<clinit>(HibernateUtil.java:8) at skj.test.test.main(test.java:21) Caused by: org.hibernate.InvalidMappingException: Unable to read XML at org.hibernate.util.xml.MappingReader.readMappingDocument(MappingReader.java:101) at org.hibernate.cfg.Configuration.add(Configuration.java:513) at org.hibernate.cfg.Configuration.add(Configuration.java:509) at org.hibernate.cfg.Configuration.add(Configuration.java:689) at org.hibernate.cfg.Configuration.addResource(Configuration.java:774) at org.hibernate.cfg.Configuration.parseMappingElement(Configuration.java:2317) at org.hibernate.cfg.Configuration.parseSessionFactory(Configuration.java:2283) at org.hibernate.cfg.Configuration.doConfigure(Configuration.java:2263) at org.hibernate.cfg.Configuration.doConfigure(Configuration.java:2216) at org.hibernate.cfg.Configuration.configure(Configuration.java:2131) at org.hibernate.cfg.Configuration.configure(Configuration.java:2110) at skj.util.HibernateUtil.buildSessionFactory(HibernateUtil.java:13) ... 2 more Caused by: org.xml.sax.SAXParseException: cvc-elt.1: Cannot find the declaration of element 'hibernate-mapping'. at com.sun.org.apache.xerces.internal.util.ErrorHandlerWrapper.createSAXParseException(ErrorHandlerWrapper.java:195) at com.sun.org.apache.xerces.internal.util.ErrorHandlerWrapper.error(ErrorHandlerWrapper.java:131) at com.sun.org.apache.xerces.internal.impl.XMLErrorReporter.reportError(XMLErrorReporter.java:384) at com.sun.org.apache.xerces.internal.impl.XMLErrorReporter.reportError(XMLErrorReporter.java:318) at com.sun.org.apache.xerces.internal.impl.xs.XMLSchemaValidator.handleStartElement(XMLSchemaValidator.java:1915) at com.sun.org.apache.xerces.internal.impl.xs.XMLSchemaValidator.startElement(XMLSchemaValidator.java:705) at com.sun.org.apache.xerces.internal.impl.XMLNSDocumentScannerImpl.scanStartElement(XMLNSDocumentScannerImpl.java:400) at com.sun.org.apache.xerces.internal.impl.XMLNSDocumentScannerImpl$NSContentDriver.scanRootElementHook(XMLNSDocumentScannerImpl.java:626) at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl$FragmentContentDriver.next(XMLDocumentFragmentScannerImpl.java:3103) at com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl$PrologDriver.next(XMLDocumentScannerImpl.java:922) at com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl.next(XMLDocumentScannerImpl.java:648) at com.sun.org.apache.xerces.internal.impl.XMLNSDocumentScannerImpl.next(XMLNSDocumentScannerImpl.java:140) at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanDocument(XMLDocumentFragmentScannerImpl.java:511) at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:808) at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:737) at com.sun.org.apache.xerces.internal.parsers.XMLParser.parse(XMLParser.java:119) at com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.parse(AbstractSAXParser.java:1205) at com.sun.org.apache.xerces.internal.jaxp.SAXParserImpl$JAXPSAXParser.parse(SAXParserImpl.java:522) at org.dom4j.io.SAXReader.read(SAXReader.java:465) at org.hibernate.util.xml.MappingReader.readMappingDocument(MappingReader.java:75) ... 13 more