0

这是我的例外

Caused by: java.lang.NullPointerException
    at org.hibernate.mapping.Table.setName(Table.java:181)
    at org.hibernate.cfg.Configuration$MappingsImpl.addTable(Configuration.java:2937)
    at org.hibernate.cfg.HbmBinder.bindRootPersistentClassCommonValues(HbmBinder.java:344)
    at org.hibernate.cfg.HbmBinder.bindRootClass(HbmBinder.java:327)
    at org.hibernate.cfg.HbmBinder.bindRoot(HbmBinder.java:178)
    at org.hibernate.cfg.Configuration$MetadataSourceQueue.processHbmXml(Configuration.java:3816)
    at org.hibernate.cfg.Configuration$MetadataSourceQueue.processHbmXmlQueue(Configuration.java:3808)
    at org.hibernate.cfg.Configuration$MetadataSourceQueue.processMetadata(Configuration.java:3796)
    at org.hibernate.cfg.Configuration.secondPassCompile(Configuration.java:1412)
    at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1846)
    at sessionfactoryconfig.HibernateUtil.<clinit>(HibernateUtil.java:13)
    ... 31 more

这是我的 hibernate.cfg.xml 文件

<?xml version="1.0" encoding="UTF-8"?>
<!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>
        <property name="connection.url">jdbc:mysql://127.0.0.1:3306/university</property>
        <property name="connection.driver_class">com.mysql.jdbc.Driver</property>
        <property name="dialect">org.hibernate.dialect.MySQLDialect</property>
        <property name="connection.username">root</property>
        <property name="connection.password">root</property>
        <property name="hbm2ddl.auto">update</property>
        <property name="connection.pool_size">10</property>
        <property name="show_sql">true</property>

        <mapping resource="mappingfiles/student.hbm.xml" />
    </session-factory>
</hibernate-configuration>

这是我的映射文件

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE hibernate-mapping PUBLIC 
    "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
    "http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd">
<hibernate-mapping package="mappingfiles">
    <class name="" table="" schema="university">
        <id name="id" column="id">
            <generator class="native"/>
        </id>
        <property name="name" column="name" />
        <property name="address" column="address" />
        <property name="mobile" column="mobile" />    
    </class>
</hibernate-mapping>

这是我的模态课

package modal;

public class Student {
    private int id;
    private String name;
    private String address;
    private String mobile;

    public Student() {
    }

    public Student(int id, String name, String address, String mobile) {
        this.id = id;
        this.name = name;
        this.address = address;
        this.mobile = mobile;
    }

    public int getId() {
        return id;
    }

    public void setId(int id) {
        this.id = id;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public String getAddress() {
        return address;
    }

    public void setAddress(String address) {
        this.address = address;
    }

    public String getMobile() {
        return mobile;
    }

    public void setMobile(String mobile) {
        this.mobile = mobile;
    }
}

截屏

请在这个项目中帮助我,它几乎没有错误,我也创建了 DAO,但现在我没有使用任何 DAO。我首先以一种简单的方式来做这件事。我正在使用休眠版本 4.3.11。请帮忙。

4

1 回答 1

1

提供名称和表属性的值。休眠映射配置无效。

<class name="" table="" schema="university">

由于未指定名称,因此出现此错误。

Caused by: java.lang.NullPointerException
    at org.hibernate.mapping.Table.setName(Table.java:181)

编辑:我认为你应该改为

 <property name="hibernate.dialect">org.hibernate.dialect.MySQLDialect</property>
于 2016-04-09T12:05:34.950 回答