2012-09-11 176 views
0

我想插入到我的postgresql数据库使用休眠,我挺或还没有弄清楚为什么我不断收到这个错误,我想要做的是让我的休眠创建我的数据库表和列并插入到创建的表中。所以我的第一个错误是关于失踪的jar文件,这是我已经加入到我的Hibernate库的SLF4J,但是经过我再次运行应用程序新的错误弹出所以这是我的错误:Java休眠错误

90 [main] INFO org.hibernate.annotations.common.Version - Hibernate Commons 

Annotations 3.2.0.Final 
100 [main] INFO org.hibernate.cfg.Environment - Hibernate 3.6.10.Final 
100 [main] INFO org.hibernate.cfg.Environment - hibernate.properties not found 
100 [main] INFO org.hibernate.cfg.Environment - Bytecode provider name : javassist 
100 [main] INFO org.hibernate.cfg.Environment - using JDK 1.4 java.sql.Timestamp handling 
150 [main] INFO org.hibernate.cfg.Configuration - configuring from resource: /hibernate.cfg.xml 
150 [main] INFO org.hibernate.cfg.Configuration - Configuration resource: /hibernate.cfg.xml 
Exception in thread "main" org.hibernate.HibernateException: /hibernate.cfg.xml not found 
    at org.hibernate.util.ConfigHelper.getResourceAsStream(ConfigHelper.java:170) 
    at org.hibernate.cfg.Configuration.getConfigurationInputStream(Configuration.java:2176) 
    at org.hibernate.cfg.Configuration.configure(Configuration.java:2157) 
    at org.hibernate.cfg.Configuration.configure(Configuration.java:2137) 
    at org.hibernate_main.HibernateMain.main(HibernateMain.java:13) 

这是我的JAR文件(INT Hibernate库):

hibernate3.jar 
antlr-2.7.6.jar 
commons-collections-3.1.jar 
dom4j-1.6.1.jar 
javassist-3.12.0.GA.jar 
jta-1.1.jar 
slf4j-api-1.6.1.jar 
hibernate-jpa-2.0-api-1.0.1.Final.jar 
postgresql-9.1-902.jdbc4 

而且我的代码: 配置(XML)

<?xml version="1.0" encoding="UTF-8"?> 

<!-- ~ Hibernate, Relational Persistence for Idiomatic Java ~ ~ Copyright (c) 2010, Red Hat Inc. or third-party contributors as ~ indicated by the @author tags or express copyright attribution ~ statements applied by the authors. All third-party contributions are ~ distributed under license by Red Hat Inc. ~ ~ This copyrighted material is made available to anyone wishing to use, modify, ~ copy, or redistribute it subject to the terms and conditions of the GNU ~ Lesser General Public License, as published by the Free Software Foundation. ~ ~ This program is distributed in the hope that it will be useful, ~ but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY ~ or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License ~ for more details. ~ ~ You should have received a copy of the GNU Lesser General Public License ~ along with this distribution; if not, write to: ~ Free Software Foundation, Inc. ~ 51 Franklin Street, Fifth Floor ~ Boston, MA 02110-1301 USA --> 

<!DOCTYPE hibernate-configuration SYSTEM "http://www.hibernate.org/dtd/hibernate-configuration-3.0.dtd" PUBLIC "-//Hibernate/Hibernate Configuration DTD 3.0//EN"> 
-<hibernate-configuration> -<session-factory> 
<!-- Database connection settings --> 
<property name="connection.driver_class">org.postgresql.Driver</property> 
<property name="connection.url">jdbc:postgresql://localhost:5432:MYPOS</property> 
<property name="connection.username">postgres</property> 
<property name="connection.password"/>perbert101 
<!-- JDBC connection pool (use the built-in) --> 
<property name="connection.pool_size">1</property> 
<!-- SQL dialect --> 
<property name="dialect">org.hibernate.dialect.PostgreSQLDialect</property> 
<!-- Disable the second-level cache --> 
<property name="cache.provider_class">org.hibernate.cache.NoCacheProvider</property> 
<!-- Echo all executed SQL to stdout --> 
<property name="show_sql">true</property> 
<!-- Drop and re-create the database schema on startup --> 
<property name="hbm2ddl.auto">create</property> 
<!-- Names the annotated entity class --> 
<mapping class="org.user_detail.dto.UserDetail"/> </session-factory> </hibernate-configuration> 

UserDetail类:

package org.user_detail.dto; 
import javax.persistence.Entity; 
import javax.persistence.Id; 

@Entity 
public class UserDetail { 
    @Id 
    private int userId; 
    private String userName; 

    public int getUserId() { 
     return userId; 
    } 
    public void setUserId(int userId) { 
     this.userId = userId; 
    } 
    public String getUserName() { 
     return userName; 
    } 
    public void setUserName(String userName) { 
     this.userName = userName; 
    } 

} 

我的主类:

package org.hibernate_main; 
import org.hibernate.Session; 
import org.hibernate.SessionFactory; 
import org.hibernate.cfg.Configuration; 
import org.user_detail.dto.UserDetail; 

public class HibernateMain { 
    public static void main(String[] args){ 
     UserDetail user = new UserDetail(); 
     user.setUserId(1); 
     user.setUserName("Jerome"); 

     SessionFactory sessionFactory = new Configuration().configure().buildSessionFactory(); 
     Session session = sessionFactory.openSession(); 
     session.beginTransaction(); 
     session.save(user); 
     session.getTransaction().commit(); 
    } 
} 

家伙你能告诉我这是什么错误是,如何解决这些问题,以及如何测试,如果在XML数据库连接是成功还是失败。多谢你们。

+1

哪里是你的配置文件?你能编辑出非必要的信息吗? –

回答

2

我觉得

/hibernate.cfg.xml not found 

是非常明显的。

确保它在CLASSPATH中。

您还可以指定它:

return new Configuration().configure("/path/to/hibernate.cfg.xml").buildSessionFactory(); 

在你的代码上述

+0

耶谢谢。我的错误:我是名称配置应该是休眠。 – Zyrax

+0

此错误意味着什么无法解析配置:/hibernate.cfg.xml – Zyrax

+0

这意味着它无法读取XML文件,因为它包含错误。这里有一个破折号“ - ” - '和这里' - '和' perbert101'没有结束标记 –