2010-08-03 3 views
4

Я пытаюсь использовать Hibernate в первый раз, и в начале руководства по началу работы он ссылается на Maven. Если я не ошибаюсь, Maven, похоже, является инструментом построения. Тем не менее, я использую Eclipse для создания моего проекта до этого момента.Нужно ли мне Maven использовать Hibernate?

Есть ли способ использовать Hibernate без необходимости Maven? Могу ли я просто делать то, что мне нужно, через Eclipse? Кто-нибудь имеет ссылку на ресурс, который может показать мне, как это сделать?

ответ

4

Вам не нужно использовать maven для использования Hibernate. Maven предлагает легкость иметь одну зависимость, чтобы включить все необходимые банки. Без maven вам придется загружать и импортировать каждую банку, на которую полагается спящий режим. Это будет ручной процесс.

Hibernate не полагается на maven, так как он говорит javax.sql.

+2

Также вы можете * * использование Maven внутри затмения. Если вы заинтересованы, ознакомьтесь с плагином m2eclipse. –

+0

@ Крис Нава, ты прав, и он тоже неплохо работает. Также посмотрите на maven-eclipse-plugin, который прекрасно создает ваш .project. –

8

Нет, конечно нет. Я никогда не использую Maven - ни за что. Продолжайте использовать Eclipse для создания ваших проектов.

Я нахожу, что достаточно сложно изучить одну новую вещь за раз. Если вы просто изучаете Hibernate, зачем усложнять жизнь Maven?

Обновление: Прошло шесть лет с тех пор, как я написал этот ответ. Вы все еще не нуждаетесь в Maven для использования Hibernate, но я передумал, о какой из них я бы рекомендовал.

Я узнал, что Maven - лучший способ управлять зависимостями и жизненным циклом проекта. Hibernate? По-прежнему нет причин для этого. Держите его простым и держаться подальше от ORM, пока это не будет необходимо.

+0

Я пытался начать обучение в спящем режиме в течение 2 дней. Я предположил, что было бы легче следовать популярному способу «строить и работать с maven». На самом деле это было не так. Я понятия не имею, что происходит и пытаюсь понять, что пропало или не так. До сих пор я до сих пор не знаю основ Hibernate, и я все еще ищу способ построить и запустить его. Kinda annoying ... –

+0

Зачем добавлять две вещи, о которых вы не знаете? Разбейте проблему. Почему вы думаете, что вам нужен Hibernate? Возможно, это настоящая проблема. Какую пользу он вам предоставит? Я не вижу никого. – duffymo

2

Вам не нужен Maven для использования Hibernate. Без Maven вам просто нужно будет загружать и добавлять jar-зависимости в проект вручную, что не сложно. И вы можете использовать любой процесс сборки, который вы используете.

2

Ну, я в конце этого ответа , Но тем не менее это поможет будущим читателям. Здесь я добавляю, как настроить проект без Maven.

Конфигурация

  1. Скачать Hibernate 5 из here.
  2. Извлеките необходимые банки из папки внутри и добавьте ее в путь сборки в следующем порядке: hibernate-release-5.0.7.Final.zip\hibernate-release-5.0.7.Final\lib\required.
  3. Убедитесь, что следующие банки добавляют к классам проекта:

    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(); 
    } 

} 

Доступ Hibernate:

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> 
Смежные вопросы