2016-11-23 19 views
0

我正在構建一個基於Maven的應用程序,我想用Hibernate來處理數據庫。我閱讀了很多文章,寫道,當我有Maven項目時,我必須將我的xml文件放入src/main/resources中。我已經這樣做了,但我又陷入了錯誤。這是我的xml文件:爲什麼我找不到hibernate.cfg.xml,即使我的xml文件在maven項目的src/main/resources中?

<?xml version="1.0" encoding="UTF-8"?> 
<!DOCTYPE hibernate-configuration PUBLIC 
     "-//Hibernate/Hibernate Configuration DTD 3.0//EN" 
     "http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd"> 
<hibernate-configuration> 
    <session-factory> 
     <property name="hibernate.connection.driver_class">com.mysql.jdbc.Driver</property> 
     <property name="hibernate.connection.username">root</property> 
     <property name="hibernate.connection.password">""</property> 
     <property name="hibernate.connection.url">jdbc:mysql://localhost:3306/database</property> 
     <property name="hibernate.dialect">org.hibernate.dialect.MySQLInnoDBDialect</property> 
     <property name="show_sql">true</property> 
     <property name="connection.pool_size">1</property> 

     <mapping class="pojo.Student"></mapping> 

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

我將此文件添加到JavaResources/src/main/resources中。

這是我FirstDemo類:

public class DemoFirst { 
public static void main(String[] args) { 

     SessionFactory sessionFactory = HibernateUtil.getSessionFactory(); 
     Session session = sessionFactory.openSession(); 
     session.beginTransaction(); 

     Student student = new Student(); 
     student.setFirstName("Bob"); 
     student.setAge(26); 

     session.save(student); 
     session.getTransaction().commit(); 

     session.close(); 

    } 

這是錯誤:

Exception in thread "main" java.lang.ExceptionInInitializerError 
    at pack.DemoFirst.main(DemoFirst.java:12) 
Caused by: org.hibernate.HibernateException: /hibernate.cfg.xml not found 
    at org.hibernate.internal.util.ConfigHelper.getResourceAsStream(ConfigHelper.java:173) 
    at org.hibernate.cfg.Configuration.getConfigurationInputStream(Configuration.java:1953) 
    at org.hibernate.cfg.Configuration.configure(Configuration.java:1934) 
    at org.hibernate.cfg.Configuration.configure(Configuration.java:1914) 
    at pack.HibernateUtil.<clinit>(HibernateUtil.java:17) 
    ... 1 more 
+0

這是從IDE內部運行代碼嗎?如果是,哪個IDE? – DaveH

+0

這是當我在eclipse中運行應用程序時... – Atenica

+0

是在構建路徑中聲明爲源目錄的src/main/resources目錄嗎? – DaveH

回答

0

我不知道很多關於Maven的,但 「正常」 把hibernate.cfg.xml應命名就像那樣,並直接進入你的類文件夾(「輸出目錄」,因爲它在Eclipse中命名)

我希望有幫助嗎?!

0
Configuration cfg = new Configuration(); 
cfg.configure("main/resources/hibernate.cfg.xml"); 
SessionFactory sf = cfg.buildSessionFactory(); 
Session session = sessionFactory.openSession(); 
session.beginTransaction(); 

Student student = new Student(); 
student.setFirstName("Bob"); 
student.setAge(26); 

session.save(student); 
session.getTransaction().commit(); 

session.close(); 

可以請你試試這個。它可能會幫助你。

+0

它不起作用... – Atenica

+0

/main/resources/hibernate.cfg.xml –

0

請將您的hibernate.cfg.xml移至src/main/webapp/WEB-INF,它應該可以工作。

+0

不,再次相同。 .. – Atenica

+0

請清理服務器和maven乾淨安裝。它必須工作 –

相關問題