我想第一次使用Hibernate,並在入門指南的早期,它引用了Maven。如果我沒有弄錯,Maven似乎是一個構建工具。不過,我一直在使用Eclipse來構建我的項目。我需要Maven來使用Hibernate嗎?
有沒有辦法讓我在不需要Maven的情況下使用Hibernate?我可以通過Eclipse做我需要的嗎?有沒有人有一個資源的鏈接,可以告訴我如何做到這一點?
我想第一次使用Hibernate,並在入門指南的早期,它引用了Maven。如果我沒有弄錯,Maven似乎是一個構建工具。不過,我一直在使用Eclipse來構建我的項目。我需要Maven來使用Hibernate嗎?
有沒有辦法讓我在不需要Maven的情況下使用Hibernate?我可以通過Eclipse做我需要的嗎?有沒有人有一個資源的鏈接,可以告訴我如何做到這一點?
你不需要使用Hibernate的maven。 Maven提供了簡單的依賴關係來包含所有必需的jar。如果沒有maven,你將不得不下載並導入每個hibernate依賴的jar。這將是一個手動過程。
Hibernate不依賴於maven,因爲它確實說javax.sql。
不,當然不是。我永遠不會使用Maven - 無論如何。繼續使用Eclipse來構建您的項目。
我發現一次學習一件新東西已經夠難了。如果你只是在學習Hibernate,爲什麼Maven會讓你的生活複雜化?
更新:我寫了這個答案已經六年了。你仍然不需要Maven來使用Hibernate,但我已經改變了我的想法,推薦哪一個。
我瞭解到,Maven是管理依賴關係和項目生命週期的最佳方式。休眠?仍然沒有理由。保持簡單並遠離ORM,直到它變得至關重要。
我一直在試着開始學習Hibernate 2天。我認爲遵循'用maven構建和運行'的流行方式會更容易。這實際上並不是。我不知道發生了什麼,並試圖瞭解什麼是缺失或錯誤。到目前爲止,我仍然不知道Hibernate的基礎知識,我仍然在尋找一種構建和運行它的方法。有點討厭...... – 2015-06-06 12:32:50
爲什麼要添加兩件你無知的東西?解決問題。你爲什麼覺得你需要Hibernate?也許這是真正的問題。它將爲您提供什麼好處?我看不到。 – duffymo 2015-06-06 14:06:27
你不需要Maven來使用Hibernate。如果沒有Maven,您只需手動下載並添加jar依賴項到項目中,這並不難。你可以使用你使用的任何構建過程。
你不需要Maven在Eclipse中使用Hibernate。
如何,對SO:Can anyone recommend a good reference for setting up Hibernate3 with Eclipse?
更多資源:
好吧,我遲到了這個答案。但它會幫助未來的讀者。在這裏我添加了如何在沒有Maven的情況下配置項目。
配置
hibernate-release-5.0.7.Final.zip\hibernate-release-5.0.7.Final\lib\required
中的生成路徑。確保以下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>
你也可以* *使用Eclipse內部行家。如果您有興趣,請檢查m2eclipse插件。 – 2010-08-03 04:15:36
@克里斯納瓦,你是對的,它也很好。另外看看maven-eclipse-plugin,它很好地構建了你的.project。 – 2010-08-03 14:38:53