2010-08-03 47 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> 
相关问题