2012-03-03 66 views
4

我一直試圖讓我的第一個Hibernate項目。我添加以下庫到我的項目:如何修復我的第一個Hibernate項目的錯誤?

ANTLR-2.7.7 公地集合-3.2.1 的dom4j-1.6.1 hibernate-commons-annotations-4.0.1.Final 休眠核心-4.1。 0.Final hibernate-jpa-2.0-api-1.0.1.Final javassist-3.15.0-GA jboss-logging-3.1.0.CR2 jboss-transaction-api_1.1_spec-1.0.0.Final MySQL的連接器的Java-5.1.18槽

hibernate.cfg.xml中:

<?xml version="1.0" encoding="UTF-8"?> 
<!DOCTYPE hibernate-configuration PUBLIC "-//Hibernate/Hibernate Configuration DTD//EN" 
    "http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd"> 
<hibernate-configuration> 
<session-factory> 
    <property name="hibernate.connection.url">jdbc:mysql://localhost/test</property> 
    <property name="hibernate.connection.driver_class">com.mysql.jdbc.Driver</property> 

    <property name="hibernate.connection.username">root</property> 
    <property name="hibernate.connection.password"></property> 
    <property name="hibernate.dialect">org.hibernate.dialect.MySQL5Dialect</property> 

    <mapping class="com.nda.hibernate.Person"/> 
</session-factory> 
</hibernate-configuration> 

Person.class:

package com.nda.hibernate; 

import javax.persistence.Entity; 
import javax.persistence.Id; 


@Entity 
public class Person { 

    private String name; 

    @Id 
    private int number; 

    public Person() {} 

    public Person(String name, int number) { 

     this.name=name; 
     this.number=number; 
    } 

    public void setName(String name) { 
     this.name=name; 
    } 

    public String getName() { 
     return name; 
    } 

    public void setNumber(int number) { 
     this.number=number; 
    } 

    public int getNumber() { 
     return number; 
    } 
} 

我已經安裝了Denwer。使用的參數:login - root,密碼爲空。服務器爲localhost,並且具有數據庫的 「測試」 與表 「人」(CHAR(50)名稱,INT(10)號 - 主鍵)

Main.class:

SessionFactory sessions=new AnnotationConfiguration().configure().buildSessionFactory(); 
    Session session=sessions.openSession(); 

它不工作。我有一些錯誤:

03.03.2012 14:11:07 org.hibernate.annotations.common.Version <clinit> 
INFO: HCANN000001: Hibernate Commons Annotations {4.0.1.Final} 
03.03.2012 14:11:07 org.hibernate.Version logVersion 
INFO: HHH000412: Hibernate Core {4.1.0.Final} 
03.03.2012 14:11:07 org.hibernate.cfg.Environment <clinit> 
INFO: HHH000206: hibernate.properties not found 
03.03.2012 14:11:07 org.hibernate.cfg.Environment buildBytecodeProvider 
INFO: HHH000021: Bytecode provider name : javassist 
03.03.2012 14:11:07 org.hibernate.cfg.Configuration configure 
INFO: HHH000043: Configuring from resource: /hibernate.cfg.xml 
03.03.2012 14:11:07 org.hibernate.cfg.Configuration getConfigurationInputStream 
INFO: HHH000040: Configuration resource: /hibernate.cfg.xml 
03.03.2012 14:11:07 org.hibernate.internal.util.xml.DTDEntityResolver resolveEntity 
WARN: HHH000223: Recognized obsolete hibernate namespace http://hibernate.sourceforge.net/. Use namespace http://www.hibernate.org/dtd/ instead. Refer to Hibernate 3.6 Migration Guide! 
03.03.2012 14:11:07 org.hibernate.cfg.Configuration doConfigure 
INFO: HHH000041: Configured SessionFactory: null 
03.03.2012 14:11:07 org.hibernate.service.jdbc.connections.internal.DriverManagerConnectionProviderImpl configure 
INFO: HHH000402: Using Hibernate built-in connection pool (not for production use!) 
03.03.2012 14:11:07 org.hibernate.service.jdbc.connections.internal.DriverManagerConnectionProviderImpl configure 
INFO: HHH000115: Hibernate connection pool size: 20 
03.03.2012 14:11:07 org.hibernate.service.jdbc.connections.internal.DriverManagerConnectionProviderImpl configure 
INFO: HHH000006: Autocommit mode: false 
03.03.2012 14:11:07 org.hibernate.service.jdbc.connections.internal.DriverManagerConnectionProviderImpl configure 
INFO: HHH000401: using driver [com.mysql.jdbc.Driver] at URL [jdbc:mysql://localhost/test] 
03.03.2012 14:11:07 org.hibernate.service.jdbc.connections.internal.DriverManagerConnectionProviderImpl configure 
INFO: HHH000046: Connection properties: {user=root, password=****} 
03.03.2012 14:11:08 org.hibernate.dialect.Dialect <init> 
INFO: HHH000400: Using dialect: org.hibernate.dialect.MySQL5Dialect 
03.03.2012 14:11:08 org.hibernate.engine.transaction.internal.TransactionFactoryInitiator initiateService 
INFO: HHH000399: Using default transaction strategy (direct JDBC transactions) 
03.03.2012 14:11:08 org.hibernate.hql.internal.ast.ASTQueryTranslatorFactory <init> 
INFO: HHH000397: Using ASTQueryTranslatorFactory 

我該如何解決它?謝謝。

+1

我沒有看到該日誌的任何異常。你能不能請出一個例外的日誌。 – 2012-03-03 11:22:34

回答

12

這些看起來都不像我的錯誤 - 它們只是日誌行。唯一的「問題」是這裏的警告:

警告:HHH000223:識別過時的hibernate命名空間http://hibernate.sourceforge.net/。改爲使用命名空間http://www.hibernate.org/dtd/。參考Hibernate 3.6遷移指南!

這只是一個警告 - 值得一修復,但它聽起來像它不是非常迫切。

其他一切都只是在INFO級別...所以不要擔心它們。繼續下去,看看你的代碼在數據庫訪問方面是否符合你的期望。

0

Person.class應該實現序列,但似乎你的主要問題是在Hibernate 3.6遷移指南!

再見。

5

這很容易 在你的XML文件的Hibernate配置,你必須更改線路

http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd 

http://www.hibernate.org/dtd/hibernate-configuration-3.0.dtd