Модераторы: LSD, AntonSaburov
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Hibernate и база данных 
:(
    Опции темы
WhiteDream
Дата 30.3.2006, 20:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 8
Регистрация: 27.3.2006

Репутация: нет
Всего: нет



Имеется проект в Netbeans работающий с hibernate. Создается table "honey" в базе данных Mysql (база данных создана заранее).
"firsthibernate". Вот код honey.java и TestExample (InitSessionFactory.java не привожу):
Код
//honey.java
package de.laliluna.example;
public class Honey {
    private Integer id;
    private String name;
    private String taste;
    public Honey() {}
    public Integer getId() {
        return id;
    }
    public void setId(Integer id) {
        this.id = id;
    }
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
    public String getTaste() {
        return taste;
    }
    public void setTaste(String taste) {
        this.taste = taste;
    }
    @Override
    public String toString() {
        return "Honey: "+getId()+" Name: "+getName()+" Taste: "+getTaste();
    }
}

Код
//TestExample.java
package de.laliluna.example;
import java.util.Iterator;
import java.util.List;
import org.apache.log4j.Logger;
import org.hibernate.HibernateException;
import org.hibernate.Session;
import org.hibernate.Transaction;
import de.laliluna.hibernate.InitSessionFactory;

public class TestExample {

        public static void main(String[] args) {
        Honey forestHoney = new Honey();
        forestHoney.setName("forest honey");
        forestHoney.setTaste("very sweet");
        Honey countryHoney = new Honey();
        countryHoney.setName("country honey");
        countryHoney.setTaste("tasty");
        createHoney(forestHoney);
        createHoney(countryHoney);
        // our instances have a primary key now:
        log.debug(forestHoney);
        log.debug(countryHoney);
        listHoney();
        deleteHoney(forestHoney);
        listHoney();
    }
    private static void listHoney() {
        Transaction tx = null;
        Session session = InitSessionFactory.getInstance().getCurrentSession();
        try {
            tx = session.beginTransaction();
            List honeys = session.createQuery("select h from Honey as h")
                    .list();
            for (Iterator iter = honeys.iterator(); iter.hasNext();) {
                Honey element = (Honey) iter.next();
                log.debug(element);
            }
            tx.commit();
        } catch (HibernateException e) {
            e.printStackTrace();
            if (tx != null && tx.isActive())
                tx.rollback();
        }
    }
    private static void deleteHoney(Honey honey) {
        Transaction tx = null;
        Session session = InitSessionFactory.getInstance().getCurrentSession();
        try {
            tx = session.beginTransaction();
            session.delete(honey);
            tx.commit();
        } catch (HibernateException e) {
            e.printStackTrace();
            if (tx != null && tx.isActive())
                tx.rollback();
        }
    }
    private static void createHoney(Honey honey) {
        Transaction tx = null;
        Session session = InitSessionFactory.getInstance().getCurrentSession();
        try {
            tx = session.beginTransaction();
            session.save(honey);
            tx.commit();
        } catch (HibernateException e) {
            e.printStackTrace();
            if (tx != null && tx.isActive())
                tx.rollback();
        }
    }
}

Пример не мой, взят из нета. Он запускается и работает нормально. Теперь мне надо сделать сервлет, который выводил бы соответствующие строки таблицы honey (как делать простые сервлеты я знаю). Заранее спасибо.
PM MAIL   Вверх
powerOn
Дата 30.3.2006, 21:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


software saboteur
****


Профиль
Группа: Участник
Сообщений: 4367
Регистрация: 7.10.2005

Репутация: 28
Всего: 159



Цитата

Имеется проект в Netbeans работающий с hibernate. Создается table "honey" в базе данных Mysql (база данных создана заранее).
"firsthibernate". Вот код honey.java и TestExample (InitSessionFactory.java не привожу):


Цитата

Пример не мой, взят из нета. Он запускается и работает нормально. Теперь мне надо сделать
сервлет, который выводил бы соответствующие строки таблицы honey (как делать простые
сервлеты я знаю). Заранее спасибо



Признаюсь, лично мне не понятно в чем состоит вопрос.... smile


--------------------
user posted image нет времени думать - нужно писать КОД!

PM MAIL   Вверх
Goliath
Дата 31.3.2006, 03:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 246
Регистрация: 1.3.2005

Репутация: нет
Всего: 5



Я насколько понял WhiteDream интересует, как производить выборку из базы. Если да тогда привету кусок кода
Код

public class FindByName 
{

    public static void main(String[] args) throws Exception 
    {
           // что ищем?
           String name = “Leha” ;

            // инициализация
            Configuration cfg = new Configuration().addClass(User.class);

            SessionFactory sf = cfg.buildSessionFactory();

             // открываем Session
              Session sess = sf.openSession();

             // поиск, результат в list
             List list = sess.find(query, name, Hibernate.STRING);

             if (list.size() == 0) 
            {
                    System.out.println("Not found ");
                    System.exit(0);
            }
            User u = (User) list.get(0);
            sess.close();
            System.out.println("Found " + u);
    }
}

--------------------
Наша жизнь растрачивается на мелочи… Упрощайте, упрощайте. [Генри Торо] 
PM MAIL   Вверх
tux
Дата 31.3.2006, 03:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Летатель
***


Профиль
Группа: Участник Клуба
Сообщений: 1853
Регистрация: 10.2.2005
Где: msk.ru

Репутация: 74
Всего: 132



Цитата(Goliath @ 31.3.2006, 08:39 Найти цитируемый пост)
Я насколько понял WhiteDream интересует, как производить выборку из базы.

Вот как раз выборка из базы там есть - метод listHoney(). Осталось только вернуть полученный список сервлету.

2WhiteDream
В самом деле, пиши понятнее чего хочешь. Вроде как класс, который все делает с Honey, есть, сервлеты писать умеешь. Что еще нужно не понятно.
PM MAIL Skype GTalk Jabber YIM   Вверх
WhiteDream
Дата 31.3.2006, 18:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 8
Регистрация: 27.3.2006

Репутация: нет
Всего: нет



с методом list действительно просто, а вот как с сервлетом быть? не очень ясно как без main обходиться
PM MAIL   Вверх
Goliath
Дата 31.3.2006, 19:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 246
Регистрация: 1.3.2005

Репутация: нет
Всего: 5



В смысле. Просто делаешь практически тоже самое только в методе doGet или doPost.
Коль мы говорим про Hibernate, хотел спросить можно ли создавать/удалять таблицы?
--------------------
Наша жизнь растрачивается на мелочи… Упрощайте, упрощайте. [Генри Торо] 
PM MAIL   Вверх
tux
Дата 1.4.2006, 04:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Летатель
***


Профиль
Группа: Участник Клуба
Сообщений: 1853
Регистрация: 10.2.2005
Где: msk.ru

Репутация: 74
Всего: 132



Цитата(Goliath @ 1.4.2006, 00:24 Найти цитируемый пост)
Коль мы говорим про Hibernate, хотел спросить можно ли создавать/удалять таблицы?

Просьба в следующий раз для каждого вопроса создавать отдельную тему.

Генерировать схему данных из маппингов и обновлять существующую схему можно используя утилиту SchemaExport - http://www.hibernate.org/hib_docs/v3/refer...toolsetguide-s1. Только маппинги должны соответствовать определенным требованиям (они в статье описаны) и не со всеми драйвера JDBC тулса будет работать поскольку сильно зависит от метаинформации, предоставляемой драйвером. При этом не все драйверы соответствующее API в примелемом виде реализуют.

Еще. Заметь, что Hibernate не сможет создать индексы - у него нет такой информации, а они необходимы в production.
PM MAIL Skype GTalk Jabber YIM   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Java"
LSD   AntonSaburov
powerOn   tux
  • Прежде, чем задать вопрос, прочтите это!
  • Книги по Java собираются здесь.
  • Документация и ресурсы по Java находятся здесь.
  • Используйте теги [code=java][/code] для подсветки кода. Используйтe чекбокс "транслит", если у Вас нет русских шрифтов.
  • Помечайте свой вопрос как решённый, если на него получен ответ. Ссылка "Пометить как решённый" находится над первым постом.
  • Действия модераторов можно обсудить здесь.
  • FAQ раздела лежит здесь.

Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, tux.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Java EE (J2EE) и Spring | Следующая тема »


 




[ Время генерации скрипта: 0.0528 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.