![]() |
Модераторы: LSD, AntonSaburov |
![]() ![]() ![]() |
|
Wowa |
|
|||
Эксперт ![]() Профиль Группа: Админ Сообщений: 15017 Регистрация: 14.9.2000 Где: Винград Репутация: нет Всего: 290 |
Что такое hibernate (из соседней темы
![]() |
|||
|
||||
Шмель |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 179 Регистрация: 16.4.2004 Репутация: 5 Всего: 18 |
![]() Hibernate - Object-Relational XML-based persistence Позволяет проецировать классы с помощью XML на таблицы базы данных Это сообщение отредактировал(а) Шмель - 14.10.2004, 12:58 --------------------
будешь на Земле - заходи |
|||
|
||||
Шмель |
|
||||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 179 Регистрация: 16.4.2004 Репутация: 5 Всего: 18 |
Пример
Это map-xml
А это то, с чем будем работать
забыл добавить. @hibernate - тэг XDoclet, после обработки которым получим map-xml по одному на каждый нужный класс Это сообщение отредактировал(а) Шмель - 14.10.2004, 14:22 --------------------
будешь на Земле - заходи |
||||
|
|||||
3,14 |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1614 Регистрация: 18.6.2004 Где: Н. Новгород Репутация: нет Всего: 24 |
Я например под спроектированную в PowerDesigner-е БД автоматически получаю готовую библиотеку для работы с ней, делаю экспорт базы в XML, применяю к полученному XML уже сделанный XSLT шаблон и получаю mapping для hibernate, таким образом базовая библиотека для реализации логики уже готова, и не надо никаких SQL запросов писать.
-------------------- Может быть, это только мой бред, Может быть, жизнь не так хороша, Может быть, я не выйду на свет, Но я летал, когда пела душа... |
|||
|
||||
ElectricalStorm |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 547 Регистрация: 22.1.2004 Репутация: нет Всего: 9 |
Прикольная вещь. ;)
-------------------- Нужно знать инструмент, которым пользуешься |
|||
|
||||
Wanderer2019 |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 937 Регистрация: 3.12.2004 Где: Санкт-Петербург/П рага Репутация: нет Всего: 17 |
модет и прикольная. но ниче не понял. в каких случаях лучше "hebirnate", а в каких по запросам строить?
|
|||
|
||||
Nobody |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 838 Регистрация: 25.8.2003 Где: Россия, Москва Репутация: 2 Всего: 16 |
Насколько я понял, hibernate - альтернатива EJB?
-------------------- |
|||
|
||||
Sleepy_PIP |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 512 Регистрация: 30.6.2004 Где: Moscow Репутация: 3 Всего: 12 |
в приведенном - не увидел ни одного запроса. А потом - исскуство писаниниы SQL еще никто не отменял. И я не уверен что хибернейт знает о структуре БД что-то больше, чем разработчик ... "экспорт базы в XML, применяю к полученному XML уже сделанный XSLT шаблон и получаю mapping для hibernate, таким образом базовая библиотека для реализации логики уже готова, и не надо никаких SQL запросов писать" - вот это и не понятно. совсем. часто для получения удобоворимого результата по времени и данным приходится варировать как источники данных, так вплодь до синтаксиса самого запроса. Если конечно все на уровне select t1.*, t2.* from table1 t1, table2 t2 where t1.id=t2.id - то тогда я понимаю ... а если копать гораздо глубже? где выясняется что ф. лучше селекта, или серект через пару-тройку таблиц лучше прямого селекта из одной таблицы? не. не понимаю, право слово ... Как это тогда получается? Это сообщение отредактировал(а) Sleepy_PIP - 26.12.2004, 20:33 -------------------- -- Sleepy_PIP. Pavel Pryazhentsev (ex. 2:5020/141) "... Лучше быть нужным, чем свободным ..." |
|||
|
||||
Се ля ви |
|
|||
![]() Java/SOAрхитектор ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 2016 Регистрация: 5.6.2004 Где: place without tim e and space Репутация: 1 Всего: 127 |
Суть hibernate в том, что она превращает реляционную БД в объектно-ориентированную. Это полная виртуализация хранения объектов - если hibernate нормально установлен и сконфигурирован, то внутри программы вы просто даёте ему объект в каком-то месте программы - и забываете о нём. Когда вам понадобилась ссылка на этот объект снова - просто запрашиваете объект у hibernate - и он вам его даёт. hibernate сам решает - класть его в БД или хранить в памяти - на основании частых или не очень вопросов к нему. Пользователя hibernate это ни коем образом не волнует - он работает только с API Hibernate. Пользователя даже вообще не должно волновать - в БД его объект, просто на винчестере сериализован, в памяти или где-то ещё - это полностью забота hibernate и определяется тем, кто его конфигурит и админит. Hibernate может и сам таблицы под любой передаваемый ему объект делать - при правильной настройке. Вот уже настройка hibernate - дело сложное...
SQL и Hibernate - это как С++ и Java - просто более высокий уровень взаимодействия ООП-Приложения с Базой Данных. Вопрос об оптимальности самого Hibernate - такой же больной, как и вопрос об оптимальности JVM. Но сам факт того, что программист не думает о том, как его объекты хранятся - сильно облегчает работу и позволяет лучше сосредоточится на бизнес-логике. :-) Это сообщение отредактировал(а) Се ля ви - 18.1.2005, 16:49 -------------------- |
|||
|
||||
jer1 |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 123 Регистрация: 24.1.2005 Где: Харьков Украина Репутация: нет Всего: 5 |
как Hibernate соотносится с ejb - это другой подход? спасибо --------------------
:w!q |
|||
|
||||
iskan |
|
|||
Новичок Профиль Группа: Участник Сообщений: 26 Регистрация: 16.3.2005 Репутация: нет Всего: нет |
Нет, это не другой подход.
CMP ( Container Managed Persistence ) во многих контейнерах реализуется при помощи той или иной ORM а сдругой стороны вы тоже можете использовать ORM для реализации BMP (Bean Managed Persistence ) |
|||
|
||||
Zandr |
|
||||||||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 433 Регистрация: 16.7.2004 Где: Новосибирск Репутация: 1 Всего: 13 |
Кошмар. Советую внимательно посмотреть в сторону XDoclet. Добавил в JavaDoc (вы ведь документируете ваш код? ) пару атрибутов, и задание в Ant - и все, все маппинги будут создаваться автоматом.
Hibernate - это механизм сохранения состояния объектов. EJB - это наворочнный RMI (удаленный вызов процедур) с кучей наворотов (транзакции, авторизация, кластеризация, .....). Ребята из hibernate предлагают вместо CMP юзать BMP с hibernate движком.
хибернейт может знать больше разработчика о том как лучше составить запрос (могу ошибаться)
А никто и не запрещал самому писать запросы (на HQL или нативном SQL), если выясняется, что хибернейтовская реализация - узкое место. Вопрос в том - насколько часто возникают такие вещи и насколько разработчик может улучшить результат таким образом. |
||||||||
|
|||||||||
3,14 |
|
||||||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1614 Регистрация: 18.6.2004 Где: Н. Новгород Репутация: нет Всего: 24 |
Обязательно посмотрю
ИМХО он просто избавляет от рутинной низкоуровневой работы, всё же в ООП легче работать с обьектной БД
Я всю SQL-ную часть стараюсь выкидывать на сторону БД при помощи view, думаю что не совсем правильно когда код содержит SQL запросы, от этого читаемость кода заметно понижается. Это сообщение отредактировал(а) 3,14 - 26.4.2005, 11:46 -------------------- Может быть, это только мой бред, Может быть, жизнь не так хороша, Может быть, я не выйду на свет, Но я летал, когда пела душа... |
||||||
|
|||||||
Zandr |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 433 Регистрация: 16.7.2004 Где: Новосибирск Репутация: 1 Всего: 13 |
Во многом согласен, конечно, но хранимые процедуры и вьюшки поддерживаются не всеми БД. Если нужна портируемость, то звиняйте.
|
|||
|
||||
Sleepy_PIP |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 512 Регистрация: 30.6.2004 Где: Moscow Репутация: 3 Всего: 12 |
Граждане! извините зща глупый вопрос:
А где-б нарыть как можно больше примеров по Hibernate? в гугле смотрел - толком ничего не нашел ... Спаибо! -------------------- -- Sleepy_PIP. Pavel Pryazhentsev (ex. 2:5020/141) "... Лучше быть нужным, чем свободным ..." |
|||
|
||||
Се ля ви |
|
|||
![]() Java/SOAрхитектор ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 2016 Регистрация: 5.6.2004 Где: place without tim e and space Репутация: 1 Всего: 127 |
А на http://hibernate.ru не пробовал искать? ![]() -------------------- |
|||
|
||||
Sleepy_PIP |
|
||||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 512 Регистрация: 30.6.2004 Где: Moscow Репутация: 3 Всего: 12 |
Вах! СПАСИБО!!! ![]() -------------------- -- Sleepy_PIP. Pavel Pryazhentsev (ex. 2:5020/141) "... Лучше быть нужным, чем свободным ..." |
||||
|
|||||
Се ля ви |
|
|||
![]() Java/SOAрхитектор ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 2016 Регистрация: 5.6.2004 Где: place without tim e and space Репутация: 1 Всего: 127 |
Пожалуйста ![]() P.S. Сам по нему хибернейт изучал в своё время. -------------------- |
|||
|
||||
LSD |
|
|||
![]() Leprechaun Software Developer ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 15718 Регистрация: 24.3.2004 Где: Dublin Репутация: 15 Всего: 538 |
А что за XSLT шаблон? -------------------- Disclaimer: this post contains explicit depictions of personal opinion. So, if it sounds sarcastic, don't take it seriously. If it sounds dangerous, do not try this at home or at all. And if it offends you, just don't read it. |
|||
|
||||
VDe |
|
|||
Новичок Профиль Группа: Участник Сообщений: 3 Регистрация: 6.6.2005 Репутация: нет Всего: нет |
это именнованый шаблон как функция.
Именнованные шаблоны можно использовать в качестве функций, которые принимают на вход несколько параметров и возвращают некоторое вычисленное значение. |
|||
|
||||
3,14 |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1614 Регистрация: 18.6.2004 Где: Н. Новгород Репутация: нет Всего: 24 |
Думаю что LSD имеет ввиду готовый пример, как восстановлю винч, так закину его сюда
-------------------- Может быть, это только мой бред, Может быть, жизнь не так хороша, Может быть, я не выйду на свет, Но я летал, когда пела душа... |
|||
|
||||
LSD |
|
|||
![]() Leprechaun Software Developer ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 15718 Регистрация: 24.3.2004 Где: Dublin Репутация: 15 Всего: 538 |
Именно ![]() Жду -------------------- Disclaimer: this post contains explicit depictions of personal opinion. So, if it sounds sarcastic, don't take it seriously. If it sounds dangerous, do not try this at home or at all. And if it offends you, just don't read it. |
|||
|
||||
Sleepy_PIP |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 512 Регистрация: 30.6.2004 Где: Moscow Репутация: 3 Всего: 12 |
не понял по поводу генераторов ...
общий вид: <id name="id" type="long" column="uid" unsaved-value="0"> <generator class="net.sf.hibernate.id.TableHiLoGenerator"> <param name="table">uid_table</param> <param name="column">next_hi_value_column</param> </generator> </id> где и как мне сказать что я хочу использовать секвернсор (оракловый), имеющий конкретное имя, а? причем имя - со схемой ... Спасибо! -------------------- -- Sleepy_PIP. Pavel Pryazhentsev (ex. 2:5020/141) "... Лучше быть нужным, чем свободным ..." |
|||
|
||||
Шмель |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 179 Регистрация: 16.4.2004 Репутация: 5 Всего: 18 |
наверное, что нибудь типа такого:
тут написано - мануал Это сообщение отредактировал(а) Шмель - 8.6.2005, 11:58 --------------------
будешь на Земле - заходи |
|||
|
||||
Sleepy_PIP |
|
||||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 512 Регистрация: 30.6.2004 Где: Moscow Репутация: 3 Всего: 12 |
Добавлено @ 11:55
ссылка кажет на http://file///opt/java/hibernate/doc/refer...ngle/index.html и не открывается. но доки у меня есть. Спасибо за наставление на правильный путь! Это сообщение отредактировал(а) Sleepy_PIP - 8.6.2005, 11:55 -------------------- -- Sleepy_PIP. Pavel Pryazhentsev (ex. 2:5020/141) "... Лучше быть нужным, чем свободным ..." |
||||
|
|||||
Шмель |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 179 Регистрация: 16.4.2004 Репутация: 5 Всего: 18 |
--------------------
будешь на Земле - заходи |
|||
|
||||
Sleepy_PIP |
|
||||||||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 512 Регистрация: 30.6.2004 Где: Moscow Репутация: 3 Всего: 12 |
блиин. выручай! никак не могу заставить ant с подкл. XDoclet-ом генерить маппинг по файлу класса ... вот что в build.xml: .... <target name="xdoclet-hibernate" depends="clear-mappings,prepateforhibernate"> <description> Generate Hibernate mappings using XDoclet </description> <taskdef name="hibernatedoclet" classname="xdoclet.modules.hibernate.HibernateDocletTask" classpathref="hibernate.generation.classpath"/> <!-- @see http://xdoclet.sourceforge.net/xdoclet/ant...DocletTask.html --> <hibernatedoclet destDir="${project.hibernate.mapping.dir}" mergeDir="${project.hibernate.templates.dir}" excludedtags="@version,@author,@param,@return,@throws" force="true" verbose="true"> <fileset dir="${src}/com/pip" includes="**/*.java"> <selector> <contains text="@hibernate"/> </selector> </fileset> <!-- Generate all the mappings --> <hibernate version="3.0"> </hibernate> </hibernatedoclet> </target> вот что в классе:
вот что при запуске Ant-а C:\pipw\mmolo\java>ant xdoclet-hibernate =========== Buildfile: build.xml clear-mappings: prepateforhibernate: xdoclet-hibernate: [hibernatedoclet] (XDocletMain.start 47 ) Running <hibernate/ > BUILD SUCCESSFUL Total time: 3 seconds C:\pipw\mmolo\java> =========== и _все_ в dest каталоге - пусто. ф. находит, т.к. если сказать <selector> <contains text="public"/> </selector> имеем: ================== Buildfile: build.xml clear-mappings: prepateforhibernate: xdoclet-hibernate: [hibernatedoclet] (XDocletMain.start 47 ) Running <hibernate/ > [hibernatedoclet] INFO: Some classes refer to other classes that were not fou nd among the sources or on the classpath. [hibernatedoclet] (Perhaps the referred class doesn't exist? Hasn't bee n generated yet?) [hibernatedoclet] The referring classes do not import any fully qualifi ed classes matching these classes. [hibernatedoclet] However, since no packages are imported, xjavadoc has assumed that the referred classes [hibernatedoclet] belong to the same package as the referring class. Th e classes are: [hibernatedoclet] C:\pipw\mmolotok\java\src\com\pip\dbobjects\PoweredUser.java - -> User qualified to com.pip.dbobjects.User [hibernatedoclet] C:\pipw\mmolotok\java\src\com\pip\dbobjects\PoweredUser.java - -> User qualified to com.pip.dbobjects.User BUILD SUCCESSFUL Total time: 3 seconds ===================== что я не правильно делаю?? Спасибо! -------------------- -- Sleepy_PIP. Pavel Pryazhentsev (ex. 2:5020/141) "... Лучше быть нужным, чем свободным ..." |
||||||||
|
|||||||||
Sleepy_PIP |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 512 Регистрация: 30.6.2004 Где: Moscow Репутация: 3 Всего: 12 |
Извините. сам разобрался ...
-------------------- -- Sleepy_PIP. Pavel Pryazhentsev (ex. 2:5020/141) "... Лучше быть нужным, чем свободным ..." |
|||
|
||||
AntonSaburov |
|
|||
![]() Штурман ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 5658 Регистрация: 2.7.2002 Где: Санкт-Петербург Репутация: 8 Всего: 118 |
А поделится ?
![]() |
|||
|
||||
Sleepy_PIP |
|
||||||||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 512 Регистрация: 30.6.2004 Где: Moscow Репутация: 3 Всего: 12 |
да, да. извините! Привожу _рабочий_ пример build.xml:
звпуск - ant xdoclet-hibernate ну естественно надо обратить внимание на пути. сам проект лежит так: /java/... т.е. src - это .../java/src и пример простейшего класса:
обратите внимание на расположение и обязательность /** * @hibernate.class * table = "USERS" */ плюс к этому - все /** * @hibernate.id * generator-class="native" * column="IDU" */ и подобные, относящиеся к каждой проперти надо ставить непоср. перед get-терами. и вот результат:
более подробно про XDoclet'овские теги для Хибернейта читать тут: http://xdoclet.sourceforge.net/xdoclet/tag...rnate-tags.html PS: важное замечание! - синклюдить данный build.xml в головной build.xml директивой <include file=... /> мне не удалось. ругается на тэг <target - даже если он пустой! так что рекомендую данный пример просто добавлять в коней своих build.xml ... PPS: кстати у Xdoclet-оского тега @hibernate.mapping разумеется не обнаружилость свойства package - врезультате, _везде_ где есть слово class= мы вынуждены писать полное имя класса. При этом замечу - сам hibernate - отлично понимает и package и сокращенное имя класса. но увы и ах! - один не разумеет что творит другой, и все ложится на плечи разработчика ![]() Это сообщение отредактировал(а) Sleepy_PIP - 22.6.2005, 21:45 -------------------- -- Sleepy_PIP. Pavel Pryazhentsev (ex. 2:5020/141) "... Лучше быть нужным, чем свободным ..." |
||||||||
|
|||||||||
Egypt |
|
|||
Unregistered |
![]() ![]() |
|||
|
||||
batigoal |
|
|||
![]() Нелетучий Мыш ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 6423 Регистрация: 28.12.2004 Где: Санктъ-Петербургъ Репутация: 11 Всего: 151 |
-------------------- "Чтобы правильно задать вопрос, нужно знать большую часть ответа" (Р. Шекли) ЖоржЖЖ |
|||
|
||||
pebehb |
|
|||
Новичок Профиль Группа: Участник Сообщений: 4 Регистрация: 19.1.2006 Репутация: нет Всего: нет |
У меня Eclipse+Hibernate
Может кто сталкивался с необходимостью просмотреть информацию в БД через Hibernate? |
|||
|
||||
pebehb |
|
||||
Новичок Профиль Группа: Участник Сообщений: 4 Регистрация: 19.1.2006 Репутация: нет Всего: нет |
Походу hibernate.ru больше не работает, может инфорацию кто перенёс на другой сайт ? |
||||
|
|||||
LSD |
|
|||
![]() Leprechaun Software Developer ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 15718 Регистрация: 24.3.2004 Где: Dublin Репутация: 15 Всего: 538 |
У меня есть копия этого сайта, сделаная около полугода назад. hibernate.rar (2,5Mb). -------------------- Disclaimer: this post contains explicit depictions of personal opinion. So, if it sounds sarcastic, don't take it seriously. If it sounds dangerous, do not try this at home or at all. And if it offends you, just don't read it. |
|||
|
||||
pebehb |
|
|||
Новичок Профиль Группа: Участник Сообщений: 4 Регистрация: 19.1.2006 Репутация: нет Всего: нет |
||||
|
||||
Се ля ви |
|
|||
![]() Java/SOAрхитектор ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 2016 Регистрация: 5.6.2004 Где: place without tim e and space Репутация: 1 Всего: 127 |
И от меня Thanx.
И всё-таки интересно - что с ним сталось?.. Неужели просто отрубили - и всё? Вообще Hibernate вроде бы JBoss перекупил (если изначально не владел) - но у них на сайте весит предложение помогать переводить доку на русский - а что, не могли проспонсировать этот сайт, что бы хотя бы просто висел? Или нынешняя версия так сильно отличается от 2.1, что эта документация вообще не годится и надо всё переводить заново?.. -------------------- |
|||
|
||||
LSD |
|
|||
![]() Leprechaun Software Developer ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 15718 Регистрация: 24.3.2004 Где: Dublin Репутация: 15 Всего: 538 |
Да пожалуйста, это мы так скачивали, чтоб на досуге поизучать. Но документация по Hibenate достаточно скупая, а руская тем более, только как QuickStart годится.
-------------------- Disclaimer: this post contains explicit depictions of personal opinion. So, if it sounds sarcastic, don't take it seriously. If it sounds dangerous, do not try this at home or at all. And if it offends you, just don't read it. |
|||
|
||||
![]() ![]() ![]() |
Правила форума "Java" | |
|
Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, tux. |
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Java tools & IDE's | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |