2017-04-22 216 views
-1

我試圖使用Hibernate和Maven來從教程創建一個MySQL數據庫。但我得到一個錯誤,似乎程序無法讀取XML文件,我不明白我出錯的地方。任何幫助都比歡迎,謝謝。休眠錯誤,無法創建SessionFactory

這是User.hbm.xml的代碼。

<?xml version="1.0" encoding="UTF-8"?> 
<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping 
DTD//EN" 
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd"> 

<hibernate-mapping> 
    <class name="com.javawebtutor.User"table="USER"> 
     <id name="userId"type="int"column="USER_ID"> 
      <generator class="assigned"/> 
     </id> 
     <property name="username"> 
      <column name="USERNAME"/> 
     </property> 
     <property name="createdBy"> 
      <column name="CREATED_BY"/> 
     </property> 
     <property name="createdDate"type="date"> 
      <column name="CREATED_DATE"/> 
     </property> 
    </class> 
</hibernate-mapping> 

Eclipse的IDE在該行發現錯誤:

pom.xml文件是

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
    xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd"> 
    <modelVersion>4.0.0</modelVersion> 
    <groupId>com.javawebtutor</groupId> 
    <artifactId>HibernateSampleExample</artifactId> 
    <packaging>jar</packaging> 
    <version>1.0-SNAPSHOT</version> 
    <name>HibernateSampleExample</name> 
    <url>http://maven.apache.org</url> 
    <dependencies> 
     <dependency> 
      <groupId>junit</groupId> 
      <artifactId>junit</artifactId> 
      <version>3.8.1</version> 
      <scope>test</scope> 
     </dependency> 
     <dependency> 
      <groupId>org.hibernate</groupId> 
      <artifactId>hibernate-core</artifactId> 
      <version>4.3.5.Final</version> 
     </dependency> 
     <!-- https://mvnrepository.com/artifact/org.hibernate/hibernate --> 


     <dependency> 
      <groupId>mysql</groupId> 
      <artifactId>mysql-connector-java</artifactId> 
      <version>5.1.6</version> 
     </dependency> 

     <dependency> 
      <groupId>javax.transaction</groupId> 
      <artifactId>jta</artifactId> 
      <version>1.1</version> 
     </dependency> 
     <dependency> 
     <groupId>org.hsqldb</groupId> 
     <artifactId>hsqldb</artifactId> 
     <version>2.2.9</version> 
    </dependency> 
    <dependency> 
     <groupId>javax</groupId> 
     <artifactId>javaee-api</artifactId> 
     <version>6.0</version> 
    </dependency> 
    <dependency> 
     <groupId>javax.servlet</groupId> 
     <artifactId>javax.servlet-api</artifactId> 
     <version>3.0.1</version> 
    </dependency> 
    <dependency> 
     <groupId>org.hibernate.common</groupId> 
     <artifactId>hibernate-commons-annotations</artifactId> 
     <version>4.0.1.Final</version> 
    </dependency> 
    <dependency> 
     <groupId>org.hibernate.javax.persistence</groupId> 
     <artifactId>hibernate-jpa-2.0-api</artifactId> 
     <version>1.0.1.Final</version> 
    </dependency> 
    <dependency> 
     <groupId>securityfilter</groupId> 
     <artifactId>securityfilter</artifactId> 
     <version>2.0</version> 
    </dependency> 
    <dependency> 
     <groupId>javax.persistence</groupId> 
     <artifactId>persistence-api</artifactId> 
     <version>1.0.2</version> 
    </dependency> 
    <dependency> 
     <groupId>cglib</groupId> 
     <artifactId>cglib</artifactId> 
     <version>2.2.2</version> 
    </dependency> 
    <dependency> 
     <groupId>asm</groupId> 
     <artifactId>asm-all</artifactId> 
     <version>3.3.1</version> 
    </dependency> 
    <dependency> 
     <groupId>log4j</groupId> 
     <artifactId>log4j</artifactId> 
     <version>1.2.16</version> 
    </dependency> 
<!-- log4j --> 
     <dependency> 
      <groupId>org.slf4j</groupId> 
      <artifactId>slf4j-log4j12</artifactId> 
      <version>1.5.10</version> 
      <!-- <scope>runtime</scope> --> 
     </dependency>  
     <dependency> 
      <groupId>org.slf4j</groupId> 
      <artifactId>slf4j-api</artifactId> 
      <version>1.5.10</version> 
     </dependency> 
     <!-- https://mvnrepository.com/artifact/dom4j/dom4j --> 
     <dependency> 
      <groupId>dom4j</groupId> 
      <artifactId>dom4j</artifactId> 
      <version>1.6.1</version> 
     </dependency> 



    </dependencies> 

</project> 

錯誤消息我得到的是:

SessionFactory creation failed.org.hibernate.exception.JDBCConnectionException: Error calling Driver#connect 
Exception in thread "main" java.lang.ExceptionInInitializerError 
    at com.javawebtutor.HibernateUtil.buildSessionFactory(HibernateUtil.java:19) 
    at com.javawebtutor.HibernateUtil.<clinit>(HibernateUtil.java:9) 
    at com.javawebtutor.Test.main(Test.java:11) 
Caused by: org.hibernate.exception.JDBCConnectionException: Error calling Driver#connect 
    at org.hibernate.engine.jdbc.connections.internal.BasicConnectionCreator$1$1.convert(BasicConnectionCreator.java:122) 
    at org.hibernate.engine.jdbc.connections.internal.BasicConnectionCreator.convertSqlException(BasicConnectionCreator.java:140) 
    at org.hibernate.engine.jdbc.connections.internal.DriverConnectionCreator.makeConnection(DriverConnectionCreator.java:58) 
    at org.hibernate.engine.jdbc.connections.internal.BasicConnectionCreator.createConnection(BasicConnectionCreator.java:75) 
    at org.hibernate.engine.jdbc.connections.internal.DriverManagerConnectionProviderImpl.configure(DriverManagerConnectionProviderImpl.java:106) 
    at org.hibernate.boot.registry.internal.StandardServiceRegistryImpl.configureService(StandardServiceRegistryImpl.java:111) 
    at org.hibernate.service.internal.AbstractServiceRegistryImpl.initializeService(AbstractServiceRegistryImpl.java:234) 
    at org.hibernate.service.internal.AbstractServiceRegistryImpl.getService(AbstractServiceRegistryImpl.java:206) 
    at org.hibernate.engine.jdbc.internal.JdbcServicesImpl.buildJdbcConnectionAccess(JdbcServicesImpl.java:260) 
    at org.hibernate.engine.jdbc.internal.JdbcServicesImpl.configure(JdbcServicesImpl.java:94) 
    at org.hibernate.boot.registry.internal.StandardServiceRegistryImpl.configureService(StandardServiceRegistryImpl.java:111) 
    at org.hibernate.service.internal.AbstractServiceRegistryImpl.initializeService(AbstractServiceRegistryImpl.java:234) 
    at org.hibernate.service.internal.AbstractServiceRegistryImpl.getService(AbstractServiceRegistryImpl.java:206) 
    at org.hibernate.cfg.Configuration.buildTypeRegistrations(Configuration.java:1885) 
    at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1843) 
    at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1928) 
    at com.javawebtutor.HibernateUtil.buildSessionFactory(HibernateUtil.java:15) 
    ... 2 more 
Caused by: java.sql.SQLException: Access denied for user 'root'@'localhost' (using password: YES) 
    at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:1055) 
    at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:956) 
    at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3491) 
    at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3423) 
    at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:910) 
    at com.mysql.jdbc.MysqlIO.secureAuth411(MysqlIO.java:3923) 
    at com.mysql.jdbc.MysqlIO.doHandshake(MysqlIO.java:1273) 
    at com.mysql.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:2031) 
    at com.mysql.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:718) 
    at com.mysql.jdbc.JDBC4Connection.<init>(JDBC4Connection.java:46) 
    at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) 
    at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62) 
    at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45) 
    at java.lang.reflect.Constructor.newInstance(Constructor.java:423) 
    at com.mysql.jdbc.Util.handleNewInstance(Util.java:406) 
    at com.mysql.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:302) 
    at com.mysql.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:282) 
    at org.hibernate.engine.jdbc.connections.internal.DriverConnectionCreator.makeConnection(DriverConnectionCreator.java:55) 
    ... 16 more 
+2

錯誤......前表屬性 – ben75

+1

寫缺少空間'<類名= 「com.javawebtutor.User」table =「USER」>'而不是''在表屬性和所有其他屬性上應用空間 –

回答

0

基礎的最後在您的錯誤消息中引起:Caused by: org.dom4j.DocumentException: Error on line 6 of document : Element type "class" must be followed by either attribute specifications, ">" or "/>". Nested exception: Element type "class" must be followed by either attribute specifications, ">" or "/>".您需要在您的交易報價和屬性

<hibernate-mapping> 
    <class name="com.javawebtutor.User" table="USER"> 
     <id name="userId" type="int" column="USER_ID"> 
<!-- and so on --> 
1

添加空白區域上的文件6行每屬性

<hibernate-mapping> 
    <class name="com.javawebtutor.User" table="USER"> 
     <id name="userId" type="int" column="USER_ID"> 
      <generator class="assigned"/> 
     </id> 
     <property name="username"> 
      <column name="USERNAME"/> 
     </property> 
     <property name="createdBy"> 
      <column name="CREATED_BY"/> 
     </property> 
     <property name="createdDate" type="date"> 
      <column name="CREATED_DATE"/> 
     </property> 
    </class> 
</hibernate-mapping>