如何解决这个hibernate运行时异常?

时间:2012-11-11 11:00:32

标签: java hibernate exception hibernate-mapping runtimeexception

我正在尝试在eclipse中运行以下代码

package com.trial;


import java.sql.*;
import java.io.*;
import org.hibernate.*;
import org.hibernate.cfg.*;

public class AddStudent {

     private static SessionFactory sessionFactory;

     public static void main(String args[]) throws Exception {

    DataInputStream d = new DataInputStream(System.in);
    System.out.println("ENTER YOUR NAME");
    String name = d.readLine();
    System.out.println("ENTER YOUR DEGREE");
    String degree = d.readLine();
    System.out.println("ENTER YOUR PHONE");
    int phone = Integer.parseInt(d.readLine());
    System.out.println("Name: " + name);
    System.out.println("Degree: " + degree);
    System.out.println("Phone: " + phone);
    if ((name.equals("") || degree.equals(""))) {
        System.out.println("Information Required");
    }
    else {

        try {
            sessionFactory = new Configuration().configure("com//xml//hibernate.cfg.xml").buildSessionFactory();
        }
        catch (Exception e) {
             System.out.println(e.getMessage());
        }

        Session s = sessionFactory.openSession();
        Student stu = new Student();
        stu.setName(name);
        stu.setDegree(degree);
        stu.setPhone(phone);
        s.save(stu);
        System.out.println("Added to Database");
        if (s != null)
            s.close();
    }
}
}

但在创建无法读取XML的会话工厂对象时遇到Runtime异常。

我正在使用以下xml文件

  1. 的hibernate.cfg.xml

     <!DOCTYPE hibernate-configuration PUBLIC
     "-//Hibernate/Hibernate Configuration DTD 3.0//EN"
      "http://www.hibernate.org/dtd/hibernate-configuration-3.0.dtd">
           <hibernate-configuration>
    
       <session-factory name="studentFactory">
    
    <property name="connection.driver_class">com.mysql.jdbc.Driver</property>
    <property name="connection.url">jdbc:mysql://localhost:3306/ganeshdb</property>
    <property name="connection.username">****</property>
    <property name="connection.password">****</property>
    <property name="connection.pool_size">10</property>
     <property name="dialect">org.hibernate.dialect.MySQLDialect</property>
     <property name="show_sql">true</property>
    <property name="hbm2ddl.auto">create</property>
    <mapping resource="com//xml//student.hbm.xml" />
    
     </session-factory>
    
    </hibernate-configuration>
    
  2. 映射文件

      <?xml version="1.0"? encoding='UTF-8'?>
      <!DOCTYPE hibernate-mapping PUBLIC
     "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
     "http://www.hibernate.org/hibernate-configuration-3.0.dtd">
    
      <hibernate-mapping>
    
        <class name="com.trial.Student" table="studentdemo">
      <id name="id" type="int" column="ID">
                    <generator class="increment" />
      </id>
       <property name="name" column="name" />
       <property name="degree" column="degree" />
       <property name="phone" column="phone" />
    </class>
    
        </hibernate-mapping>
    
  3. 帮助。

1 个答案:

答案 0 :(得分:0)

<mapping resource="student.hbm.xml" />

并确保它与hibernate.cfg.xml

位于同一目录中