gpt4 book ai didi

java - 线程中的异常 "main"org.hibernate.InvalidMappingException : Could not parse mapping document from resource userdata. hbm.xml

转载 作者:行者123 更新时间:2023-11-29 23:23:54 28 4
gpt4 key购买 nike

这是我的目录结构:

enter image description here

以下是错误:

enter image description here

我正在尝试我的第一个 hibernate 程序,但收到此错误。我的程序只是在数据库中输入用户名、密码和电子邮件。我创建了一个 POJO user.java、一个 UserManager.java 和两个 xml 文件,一个用于配置,另一个用于 hibernate 映射。这个错误我已经尝试了好久了,还是没有解决。

这是我的用户.java:

    package com.csc.training.Twitter;

public class User {

String username;
String password;
String email;
int user_id;
Date joined;

public Date getJoined() {
return joined;
}
public void setJoined(Date joined) {
this.joined = joined;
}

public int getUser_id() {
return user_id;
}
public void setUser_id(int user_id) {
this.user_id = user_id;
}


public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
public String getEmail() {
return email;
}
public void setEmail(String email) {
this.email = email;
}
}

UserManager.java

package com.csc.training.Twitter;

import org.hibernate.SessionFactory;
import org.hibernate.Transaction;
import org.hibernate.cfg.Configuration;
import org.hibernate.classic.Session;

public class UserManager {

public void registration() {

Configuration config=new Configuration();
config.configure("hibernate.cfg.xml");
SessionFactory factory=config.buildSessionFactory();

Session session=factory.openSession();

Transaction transaction = (Transaction) session.beginTransaction();

User user = new User();

user.setUsername("fname2");
user.setPassword("lname2");
user.setEmail("def@def.def");

session.persist(user);

transaction.commit();

System.out.println("User Id : " + user.getUser_id());

session.close();
System.out.println("Employee update successful...");

}

public static void main(String[] args) {
UserManager um=new UserManager();
um.registration();
}
}

这些是 xml 文件..

用户数据.hbm.xml:

    <?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE hibernate-mapping PUBLIC
"-//Hibernate/Hibernate Mapping DTD//EN"
"http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd">

<hibernate-mapping>
<class name="com.csc.training.user" table="userdata">
<id name="user_id">
<generator class="increment"></generator>
</id>


<property name="username" column="username" type="string"/>
<property name="password" column="password" type="string"/>
<property name="email" column="email" type="string"/>
<property name="joined" type="timestamp" column="joined"/>

</class>
</hibernate-mapping>

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="hibernate.dialect">
org.hibernate.dialect.MySQLDialect
</property>
<property name="hibernate.connection.driver_class">
com.mysql.jdbc.Driver
</property>

<!-- Assume test is the database name -->
<property name="hibernate.connection.url">
jdbc:mysql://localhost/twitter
</property>
<property name="hibernate.connection.username">
root
</property>
<property name="hibernate.connection.password">
root
</property>

<!-- List of XML mapping files -->
<mapping resource="userdata.hbm.xml"/>

</session-factory>
</hibernate-configuration>

我的数据库是twitter,表名是userdata。 userdata包含user_id(int,主键,自增),joined(时间戳),用户名,电子邮件,密码。谁能告诉我错误是什么?非常感谢!

最佳答案

hibernate 配置文件中的 DTD 声明不正确。

user.hbm.xml 文件中,它应该是:

<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE hibernate-mapping PUBLIC
"-//Hibernate/Hibernate Mapping DTD//EN"
"http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd">

对于 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">

完成这些更改后,请确保在运行 UserManager 程序时它们位于类路径中。

关于java - 线程中的异常 "main"org.hibernate.InvalidMappingException : Could not parse mapping document from resource userdata. hbm.xml,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27097661/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com