основной метод hibernate - PullRequest
       1

основной метод hibernate

0 голосов
/ 16 августа 2011

Я очень новичок в Hibernate и просто хотел запросить начальные основы.

Я создал свой компонент Hibernate как таковой ...

package com.behaviour.chapter1;

import javax.persistence.Entity;
import javax.persistence.Id;

@Entity
public class User {

    private int userId;
    private String firstName;

    @Id
    public int getUserId() {
        return userId;
    }
    public void setUserId(int userId) {
        this.userId = userId;
    }
    public String getFirstName() {
        return firstName;
    }
    public void setFirstName(String firstName) {
        this.firstName = firstName;
    }
}

Я настроилмое соединение hibernate.cfg.xml и db там.Мой вопрос прост: как я могу вызвать это из основного метода и использовать его в Hibernate3.6.6?Я следил за учебником онлайн, но он был для Hibernate3.2, и, похоже, он немного другой.Если бы кто-нибудь мог показать мне просто очень простой метод main, вызывающий этот бин, создающий нового пользователя (который создал бы пользователя в этой таблице), это было бы очень признательно.Кроме того - если у кого-то есть хорошие учебные ссылки по Hibernate, это было бы здорово:)

Спасибо,

Ответы [ 4 ]

4 голосов
/ 16 августа 2011

Есть несколько способов сделать это, это вопрос выбора дизайна, основным способом достижения этого будет создание фабрики сеансов из файла hibernate.cfg.xml.Убедитесь, что файл находится в вашем classpath.

И, используя класс ниже, создайте объект Session Factory, который затем используется для открытия нового сеанса

  public class HibernateUtil 
  {
    private static final SessionFactory sessionFactory;

     static 
     {
      try 
        {
         // Create the SessionFactory from hibernate.cfg.xml
         sessionFactory = 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 class DaoFactory
{
   public void create(Object obj)throws Exception
   {
     Session session = HibernateUtil.getSessionFactory().getCurrentSession();
     session.beginTransaction();
     session.save(obj);
     session.getTransaction().commit();
   }
}

Main

public static void main(String[] args)
{
  try
  {
   User user = new User();
   user.setFirstName("david99world");
   DaoFactory factory = new DaoFactory();
   factory.create(user);
  }
   catch(Exception ex)
  {
   ex.printStackTrace(System.out);
  }
}

РЕДАКТИРОВАТЬ

Ваш hibernate.cfg.xml должен выглядеть примерно так:

<?xml version='1.0' encoding='utf-8'?>
<!DOCTYPE hibernate-configuration PUBLIC
"-//Hibernate/Hibernate Configuration DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">
<hibernate-configuration>
<session-factory>
<!-- Database connection settings -->
<property name="connection.driver_class">com.mysql.jdbc.Driver</property>
<property name="connection.url">jdbc:mysql://localhost:3306/test</property>
<property name="connection.username">root</property>
<property name="connection.password">root</property>

<!-- JDBC connection pool (use the built-in) -->
<property name="connection.pool_size">1</property>

<!-- SQL dialect -->
<property name="dialect">org.hibernate.dialect.MySQLDialect</property>

<!-- Enable Hibernate's automatic session context management -->
<property name="current_session_context_class">thread</property>

<!-- Disable the second-level cache -->
<property name="cache.provider_class">org.hibernate.cache.NoCacheProvider</property>

<!-- Echo all executed SQL to stdout -->
<property name="show_sql">true</property>

<!-- Drop and re-create the database schema on startup -->
<property name="hbm2ddl.auto">none</property>

<mapping class="com.behaviour.chapter1.User"/>

</session-factory>
</hibernate-configuration>
1 голос
/ 16 августа 2011

Я предполагаю, что вы уже настроили свой файл persistence.xml. Если это так, вы можете использовать следующий код Java. Вам нужно будет заменить «...» данными настройки JDBC и единицей сохранения состояния.

private static final String PERSISTENCE_UNIT = "...";

final Map<String, String> properties = new HashMap<String, String>();
properties.put("javax.persistence.jdbc.driver", "...");
properties.put("javax.persistence.jdbc.url", "...");
properties.put("javax.persistence.jdbc.user", "...");
properties.put("javax.persistence.jdbc.password", "...");

final EntityManagerFactory emf = Persistence.createEntityManagerFactory(PERSISTENCE_UNIT, properties);
final EntityManager em = emf.createEntityManager();

User user = new User();
user.setUserID(0);
user.setFirstName("David");

em.getTransaction().begin();
em.persist(user);
em.getTransaction().commit();

НТН

Рака

0 голосов
/ 16 августа 2011

Вам нужен объект Session для доступа к единице сохранения. Эти объекты предоставляются объектами SessionFactory.

Проверка Справочное руководство по Hibernate .

0 голосов
/ 16 августа 2011
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...