Maven Web 应用程序中的 Hibernate 文件位置
Hibernate file location in maven web application
我正在使用 Maven(Web 应用程序原型)编写一个简单的 Web 应用程序,但我不确定将 Hibernate 配置文件放在哪里。哪个是正确的文件夹?
目前,我的 webapp/WEB-INF 文件夹中有它们,但应用程序似乎找不到它们。
编辑:感谢您的回答。我不确定应用程序是否找到了配置文件。它只是产生这个异常:java.lang.NoClassDefFoundError: org/dom4j/DocumentException
我添加了依赖:
<dependency>
<groupId>dom4j</groupId>
<artifactId>dom4j</artifactId>
<version>1.6.1</version>
</dependency>
这是否意味着应用程序找到了配置文件,但其他地方出了问题,还是我的位置仍然错误?
编辑2:
这是使用休眠保存的方法:
private void saveToDatabase(Customer customer) {
// 1. configuring hibernate
Configuration configuration = new Configuration().configure();
// 2. create sessionfactory
SessionFactory sessionFactory = configuration.buildSessionFactory();
// 3. Get Session object
Session session = sessionFactory.openSession();
// 4. Starting Transaction
Transaction transaction = session.beginTransaction();
session.save(customer);
transaction.commit();
}
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.connection.driver_class">com.mysql.jdbc.Driver</property>
<property name="hibernate.connection.url">jdbc:mysql://localhost:3306/carrent</property>
<property name="hibernate.connection.username">root</property>
<property name="hibernate.connection.password">root</property>
<property name="hibernate.dialect">org.hibernate.dialect.MySQLDialect</property>
<property name="show_sql">true</property>
<property name="format_sql">true</property>
<property name="hbm2ddl.auto">create </property>
<mapping resource="customer.hbm.xml" />
</session-factory>
</hibernate-configuration>
customer.hbn.xml:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<hibernate-mapping>
<class name="wa2.entities.Customer" table="CUSTOMER">
<id column="ID" name="id" type="java.lang.String" />n
<property column="NAME" name="name" type="java.lang.String" />
</class>
</hibernate-mapping>
在您的 Maven 网络项目中,您有一个名为 src/main/resources
的文件夹。将您的 hibernate.cfg.xml
文件放入该文件夹。
创建于src/main/resources/hibernate.cfg.xml
项目结构应该是这样的
您可以按照此 link 进一步说明
我正在使用 Maven(Web 应用程序原型)编写一个简单的 Web 应用程序,但我不确定将 Hibernate 配置文件放在哪里。哪个是正确的文件夹?
目前,我的 webapp/WEB-INF 文件夹中有它们,但应用程序似乎找不到它们。
编辑:感谢您的回答。我不确定应用程序是否找到了配置文件。它只是产生这个异常:java.lang.NoClassDefFoundError: org/dom4j/DocumentException
我添加了依赖:
<dependency>
<groupId>dom4j</groupId>
<artifactId>dom4j</artifactId>
<version>1.6.1</version>
</dependency>
这是否意味着应用程序找到了配置文件,但其他地方出了问题,还是我的位置仍然错误?
编辑2: 这是使用休眠保存的方法:
private void saveToDatabase(Customer customer) {
// 1. configuring hibernate
Configuration configuration = new Configuration().configure();
// 2. create sessionfactory
SessionFactory sessionFactory = configuration.buildSessionFactory();
// 3. Get Session object
Session session = sessionFactory.openSession();
// 4. Starting Transaction
Transaction transaction = session.beginTransaction();
session.save(customer);
transaction.commit();
}
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.connection.driver_class">com.mysql.jdbc.Driver</property>
<property name="hibernate.connection.url">jdbc:mysql://localhost:3306/carrent</property>
<property name="hibernate.connection.username">root</property>
<property name="hibernate.connection.password">root</property>
<property name="hibernate.dialect">org.hibernate.dialect.MySQLDialect</property>
<property name="show_sql">true</property>
<property name="format_sql">true</property>
<property name="hbm2ddl.auto">create </property>
<mapping resource="customer.hbm.xml" />
</session-factory>
</hibernate-configuration>
customer.hbn.xml:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<hibernate-mapping>
<class name="wa2.entities.Customer" table="CUSTOMER">
<id column="ID" name="id" type="java.lang.String" />n
<property column="NAME" name="name" type="java.lang.String" />
</class>
</hibernate-mapping>
在您的 Maven 网络项目中,您有一个名为 src/main/resources
的文件夹。将您的 hibernate.cfg.xml
文件放入该文件夹。
创建于src/main/resources/hibernate.cfg.xml
项目结构应该是这样的