Java 如何修复我的第一个Hibernate项目的错误?

Java 如何修复我的第一个Hibernate项目的错误?,java,hibernate,Java,Hibernate,我一直在尝试制作我的第一个Hibernate项目。我在项目中添加了以下库: antlr-2.7.7 commons-collections-3.2.1 dom4j-1.6.1 hibernate-commons-annotations-4.0.1.Final hibernate-core-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-transacti

我一直在尝试制作我的第一个Hibernate项目。我在项目中添加了以下库:

antlr-2.7.7 commons-collections-3.2.1 dom4j-1.6.1 hibernate-commons-annotations-4.0.1.Final hibernate-core-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-connector-java-5.1.18-bin

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>
我已经安装了Denwer。使用参数:login-root,密码为空。服务器是本地主机,数据库“test”带有表“person”(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
03.03.2012 14:11:07 org.hibernate.annotations.common.Version
信息:HCANN000001:Hibernate Commons注释{4.0.1.Final}
03.03.2012 14:11:07 org.hibernate.Version日志版本
信息:hh000412:Hibernate核心{4.1.0.Final}
03.03.2012 14:11:07 org.hibernate.cfg.Environment
信息:HH000206:找不到hibernate.properties
03.03.2012 14:11:07 org.hibernate.cfg.Environment buildBytecodeProvider
信息:HH000021:字节码提供程序名称:javassist
03.03.2012 14:11:07 org.hibernate.cfg.Configuration配置
信息:HH000043:从资源配置:/hibernate.cfg.xml
03.03.2012 14:11:07 org.hibernate.cfg.Configuration getConfigurationInputStream
信息:hh000040:配置资源:/hibernate.cfg.xml
03.03.2012 14:11:07 org.hibernate.internal.util.xml.DTDEntityResolver解析实体
警告:HH000223:已识别过时的hibernate命名空间http://hibernate.sourceforge.net/. 使用名称空间http://www.hibernate.org/dtd/ 相反请参阅Hibernate 3.6迁移指南!
03.03.2012 14:11:07 org.hibernate.cfg.Configuration doConfigure
信息:HH000041:配置的会话工厂:null
03.03.2012 14:11:07 org.hibernate.service.jdbc.connections.internal.driverManager连接提供MPL配置
信息:HH000402:使用Hibernate内置连接池(不用于生产!)
03.03.2012 14:11:07 org.hibernate.service.jdbc.connections.internal.driverManager连接提供MPL配置
信息:HH000115:休眠连接池大小:20
03.03.2012 14:11:07 org.hibernate.service.jdbc.connections.internal.driverManager连接提供MPL配置
信息:HH000006:自动提交模式:错误
03.03.2012 14:11:07 org.hibernate.service.jdbc.connections.internal.driverManager连接提供MPL配置
信息:HH000401:在URL[jdbc:mysql://localhost/test]
03.03.2012 14:11:07 org.hibernate.service.jdbc.connections.internal.driverManager连接提供MPL配置
信息:HH000046:连接属性:{user=root,password=**}
03.03.2012 14:11:08 org.hibernate.dialogue.dialogue
信息:HH000400:使用方言:org.hibernate.dialogue.mysql5dialogue
03.03.2012 14:11:08 org.hibernate.engine.transaction.internal.TransactionFactoryInitiator initiateService
信息:HH000399:使用默认事务策略(直接JDBC事务)
03.03.2012 14:11:08 org.hibernate.hql.internal.ast.ASTQueryTranslatorFactory
信息:HH000397:使用ASTQueryTranslatorFactory

我怎样才能修好它?多谢各位

在我看来,这些都不是错误——它们只是日志行。唯一的“问题”是此处的警告:

警告:HH000223:已识别过时的hibernate命名空间。改用名称空间。请参阅Hibernate 3.6迁移指南

这只是一个值得修正的警告,但听起来并不十分紧迫


其他一切都只是在信息层面上。。。所以不要为他们担心。继续,看看您的代码在数据库访问方面是否达到了预期效果。

我也遇到了同样的问题。 通过谷歌搜索,我解决了这个问题

您只需将命名空间“”更改为“”
如中所述,

Person.class应该实现可序列化,但您遇到的主要问题似乎是Hibernate 3.6迁移指南

再见。

很简单 在文件xml hibernate配置中,必须更改行

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


我在日志中没有看到任何异常。请您出示一份有例外的日志,谢谢!为我工作。
http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd
http://www.hibernate.org/dtd/hibernate-configuration-3.0.dtd