0

hibernate を使用して postgresql データベースに挿入したいのですが、なぜこのエラーが発生し続けるのかがまったくわからないか、まったくわかりません。私がやろうとしているのは、休止状態にデータベースのテーブルと列を作成させ、作成したテーブルに挿入させることです. したがって、私の最初のエラーは、Hibernate ライブラリに既に追加した slf4j である不足している jar ファイルに関するものですが、アプリケーションを再度実行すると、新しいエラーがポップアップするため、これが私のエラーです:

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ファイルです(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 のデータベース接続が成功したか失敗したかをテストする方法を教えてください。みんなありがとう。

4

1 に答える 1

2

おもう

  /hibernate.cfg.xml not found

十分に明確です。

それが CLASSPATH にあることを確認してください。

次の場所でも指定できます。

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

上記のコードで

于 2012-09-11T01:06:56.120 に答える