2010-08-03 45 views
4

我想第一次使用Hibernate,並在入門指南的早期,它引用了Maven。如果我沒有弄錯,Maven似乎是一個構建工具。不過,我一直在使用Eclipse來構建我的項目。我需要Maven來使用Hibernate嗎?

有沒有辦法讓我在不需要Maven的情況下使用Hibernate?我可以通過Eclipse做我需要的嗎?有沒有人有一個資源的鏈接,可以告訴我如何做到這一點?

回答

4

你不需要使用Hibernate的maven。 Maven提供了簡單的依賴關係來包含所有必需的jar。如果沒有maven,你將不得不下載並導入每個hibernate依賴的jar。這將是一個手動過程。

Hibernate不依賴於maven,因爲它確實說javax.sql。

+2

你也可以* *使用Eclipse內部行家。如果您有興趣,請檢查m2eclipse插件。 – 2010-08-03 04:15:36

+0

@克里斯納瓦,你是對的,它也很好。另外看看maven-eclipse-plugin,它很好地構建了你的.project。 – 2010-08-03 14:38:53

8

不,當然不是。我永遠不會使用Maven - 無論如何。繼續使用Eclipse來構建您的項目。

我發現一次學習一件新東西已經夠難了。如果你只是在學習Hibernate,爲什麼Maven會讓你的生活複雜化?

更新:我寫了這個答案已經六年了。你仍然不需要Maven來使用Hibernate,但我已經改變了我的想法,推薦哪一個。

我瞭解到,Maven是管理依賴關係和項目生命週期的最佳方式。休眠?仍然沒有理由。保持簡單並遠離ORM,直到它變得至關重要。

+0

我一直在試着開始學習Hibernate 2天。我認爲遵循'用maven構建和運行'的流行方式會更容易。這實際上並不是。我不知道發生了什麼,並試圖瞭解什麼是缺失或錯誤。到目前爲止,我仍然不知道Hibernate的基礎知識,我仍然在尋找一種構建和運行它的方法。有點討厭...... – 2015-06-06 12:32:50

+0

爲什麼要添加兩件你無知的東西?解決問題。你爲什麼覺得你需要Hibernate?也許這是真正的問題。它將爲您提供什麼好處?我看不到。 – duffymo 2015-06-06 14:06:27

2

你不需要Maven來使用Hibernate。如果沒有Maven,您只需手動下載並添加jar依賴項到項目中,這並不難。你可以使用你使用的任何構建過程。

2

好吧,我遲到了這個答案。但它會幫助未來的讀者。在這裏我添加了如何在沒有Maven的情況下配置項目。

配置

  1. 下載從here休眠5。
  2. 從文件夾中提取必需的罐子並將其添加到以下hibernate-release-5.0.7.Final.zip\hibernate-release-5.0.7.Final\lib\required中的生成路徑。
  3. 確保以下jar文件添加到項目的類路徑:

    antlr-2.7.7.jar 
    commons-dbcp2-2.1.1.jar 
    dom4j-1.6.1.jar 
    geronimo-jta_1.1_spec-1.1.1.jar 
    hibernate-commons-annotations-5.0.1.Final.jar 
    hibernate-core-5.0.7.Final.jar 
    hibernate-jpa-2.1-api-1.0.0.Final.jar 
    jandex-2.0.0.Final.jar 
    javassist-3.18.1-GA.jar 
    javax.servlet.jsp.jstl-api-1.2.1-sources.jar 
    jboss-logging-3.3.0.Final.jar 
    sqljdbc4-3.0.jar //or whatever database you use 
    hibernate-entitymanager-5.0.7.Final 
    

代碼:

Employee.java

import java.io.Serializable; 

public class Employee implements Serializable{ 

    private static final long serialVersionUID = 1L; 
    private int id; 
    private String firstName; 
    private String lastName; 
    private int salary; 
    //setters and getters 
} 

的HibernateUtil的.java

import org.hibernate.SessionFactory; 
import org.hibernate.cfg.Configuration; 

public class HibernateUtil { 

    private static final SessionFactory sessionFactory = buildSessionFactory(); 

    private static SessionFactory buildSessionFactory() { 
    try { 
     // Create the SessionFactory from hibernate.cfg.xml 
     return new Configuration().configure().buildSessionFactory(); 
    } 
    catch (Throwable ex) { 
     // Make sure you log the exception, as it might be swallowed 
     System.err.println("Initial SessionFactory creation failed." + ex); 
     throw new ExceptionInInitializerError(ex); 
    } 
} 

public static SessionFactory getSessionFactory() { 
    return sessionFactory; 
} 

public static void shutdown() { 
    // Close caches and connection pools 
    getSessionFactory().close(); 
    } 

} 

訪問休眠:

public void hibernateTest(){ 
     System.out.println("Maven + Hibernate + MySQL"); 
     Session session = HibernateUtil.getSessionFactory().openSession(); 

     session.beginTransaction(); 
     Employee e = new Employee(); 
     System.out.println("Beginning transaction"); 
     e.setFirstName("Pritam Test Again"); 
     e.setLastName("Banerje"); 
     e.setSalary(12); 

     session.save(e); 
     session.getTransaction().commit(); 
    } 

創建表查詢:

CREATE TABLE EMPLOYEE123 
(ID INTEGER, 
FIRST_NAME VARCHAR, 
LAST_NAME VARCHAR, 
SALARY INTEGER); 

配置文件可以是任何標準對這些類型的文件。這裏是Employee.hbm.xml的示例。請記得妥善放置包名稱。

<class name="com.sow.application.Employee" table="EMPLOYEE123"> 
    <meta attribute="class-description"> 
    This class contains the employee detail. 
    </meta> 
    <id name="id" type="int" column="id"> 
    <generator class="native"/> 
    </id> 
    <property name="firstName" column="first_name" type="string"/> 
    <property name="lastName" column="last_name" type="string"/> 
    <property name="salary" column="salary" type="int"/> 
</class> 

這裏是配置XML文件hibernate.cfg.xml中

<hibernate-configuration> 
<session-factory> 
<property name="hibernate.dialect"> 
    org.hibernate.dialect.SQLServerDialect 
</property> 
<property name="hibernate.connection.driver_class"> 
    com.microsoft.sqlserver.jdbc.SQLServerDriver 
</property> 

<property name="hibernate.connection.url"> 
    jdbc:sqlserver://localhost:1444 
</property> 
    <property name="hibernate.default_schema">dbo</property> 
<property name="hibernate.connection.username"> 
    UserName 
</property> 
<property name="hibernate.connection.password"> 
    Password 
</property> 

<!-- List of XML mapping files --> 
<mapping resource="com/sow/application/Employee.hbm.xml"/> 

</session-factory> 
</hibernate-configuration> 
相關問題