Нужно ли Maven использовать Hibernate? - PullRequest
4 голосов
/ 03 августа 2010

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

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

Ответы [ 5 ]

8 голосов
/ 03 августа 2010

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

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

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

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

7 голосов
/ 03 августа 2010
4 голосов
/ 03 августа 2010

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

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

2 голосов
/ 28 января 2016

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

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

  1. Загрузите Hibernate 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();
  }

}

Доступ к 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>
2 голосов
/ 03 августа 2010

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

...