1

* 以下の各ファイルは同じ場所にあります *

エラー :

    SLF4J: クラス "org.slf4j.impl.StaticLoggerBinder" のロードに失敗しました。
    SLF4J: 無操作 (NOP) ロガー実装のデフォルト
    SLF4J: 詳細については、http://www.slf4j.org/codes.html#StaticLoggerBinder を参照してください。
org.hibernate.InvalidMappingException: リソース ./employee.hbm.xml からマッピング ドキュメントを解析できませんでした
    org.hibernate.cfg.Configuration.addResource(Configuration.java:616) で
    org.hibernate.cfg.Configuration.parseMappingElement (Configuration.java:1635) で
    org.hibernate.cfg.Configuration.parseSessionFactory (Configuration.java:1603) で
    org.hibernate.cfg.Configuration.doConfigure(Configuration.java:1582) で
    org.hibernate.cfg.Configuration.doConfigure (Configuration.java:1556) で
    org.hibernate.cfg.Configuration.configure (Configuration.java:1476) で
    org.hibernate.cfg.Configuration.configure (Configuration.java:1462) で
    com.yahoo.hibernatelearning.FirstExample.main (FirstExample.java:19) で
原因: org.hibernate.InvalidMappingException: 入力ストリームからマッピング ドキュメントを解析できませんでした
    org.hibernate.cfg.Configuration.addInputStream(Configuration.java:555) で
    org.hibernate.cfg.Configuration.addResource(Configuration.java:613) で
    ... 7 つ以上
原因: org.dom4j.DocumentException: http://hibernate.sourceforge.net/%0Ahibernate-mapping-3.0.dtd ネストされた例外: http://hibernate.sourceforge.net/%0Ahibernate-mapping-3.0.dtd
    org.dom4j.io.SAXReader.read(SAXReader.java:484) で
    org.hibernate.cfg.Configuration.addInputStream(Configuration.java:546) で
    ... 8 つ以上
スレッド「メイン」での例外 java.lang.NullPointerException
    com.yahoo.hibernatelearning.FirstExample.main (FirstExample.java:33) で

ハイバネート構成: 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.driver_class">org.h2.Driver</property>
<property name="hibernate.connection.url">jdbc:h2:./db/repository</property>
<property name="hibernate.connection.username">sa</property>
<property name="hibernate.connection.password"></property>
<property name="hibernate.default_schema">PUBLIC</property>
<property name="hibernate.dialect">org.hibernate.dialect.H2Dialect</property>
<property name="hibernate.show_sql">true</property>
<property name="hibernate.hbm2ddl.auto">update</property>
<!--  Mapping files  -->
<mapping resource="./employee.hbm.xml"/>
</session-factory>
</hibernate-configuration>

マッピング構成: employee.hbm.xml

<?xml version="1.0"?>
<!DOCTYPE hibernate-mapping PUBLIC
"-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://hibernate.sourceforge.net/
hibernate-mapping-3.0.dtd">
<hibernate-mapping>
<class name="com.yahoo.hibernatelearning.Employee" table="employee">
<id name="empId" type="int" column="emp_id" >
<generator class="native"/>
</id>
<property name="empName">
<column name="emp_name" />
</property>
<property name="empSal">
<column name="emp_sal" />
</property>
</class>
</hibernate-mapping>

マッピング クラス : Employee.java

    パッケージ com.yahoo.hibernatelearning;

    パブリッククラス従業員{

        プライベート int empId;
        プライベート文字列 empName;
        プライベート int empSal;

        public int getEmpId() {
            empId を返します。
        }   

        public void setEmpId(int empId) {
            this.empId = empId;
        }

        public String getEmpName() {
            empName を返します。
        }

        public void setEmpName(String empName) {
        this.empName = empName;
        }

        public int getEmpSal() {
            empSal を返します。
        }

        public void setEmpSal(int empSal) {
            this.empSal = empSal;
        }

    }

コード: FirstExample.java

    パッケージ com.yahoo.hibernatelearning;

    org.hibernate.Session をインポートします。
    org.hibernate.SessionFactory をインポートします。
    org.hibernate.Transaction をインポートします。
    org.hibernate.cfg.Configuration をインポートします。

    public class FirstExample {

    /**
    * @param 引数
    */
    public static void main(String[] args) {
    // TODO 自動生成メソッド スタブ

    セッション sess = null;
    トランザクション tran = null;
    試す{
    SessionFactory sessFact = new Configuration().configure().buildSessionFactory();
    sess = sessFact.openSession();
    System.out.println("セッション: "+ sess);
    tran = sess.beginTransaction();
    従業員 emp = 新しい従業員();
    emp.setEmpName("ビレンドラ・クマール");
    emp.setEmpSal(12000);
    sess.save(emp);
    トラン.コミット();
    }
    catch(例外例){
    ex.printStackTrace();
    }
    最後に{
    sess.close();
    }

    }

    }

4

1 に答える 1

2

%0Ahttp://hibernate.sourceforge.net/は、との間の改行が問題であることを示していますhibernate-mapping-3.0.dtd

問題は、改行を削除することで解決されます。

"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd"
于 2012-11-24T17:17:56.857 に答える