2010-11-12 3 views
5

Я преподаю свой спящий режим и довольно смущен тем, что не могу просто написать простые SQL-запросы.HQL vs. SQL/Hibernate netbeans Редактор HQL

я нахожу гораздо более запутанной, чем обычный SQL (то, что я привык к)

PLUS: Редактор NetBeans HQL я нашел очень раздражает, это тяжелее для меня, чтобы произвести правильный запрос в HQL, то в SQL, и почему показанный SQL отличается от фактических операторов SQL?

Так зачем использовать его? - Как известно, спящий режим очень богат, и я считаю, что спящий режим является причиной того, что наше приложение часто исчерпывает память, например, в процессе перераспределения, например ..

Мне очень интересно знать почему я должен использовать Hibernate, а не простые SQL-запросы (mysql)!?

А может быть хорошая ссылка для Hibernate запросов было бы неплохо;), я использую это один атм:

Но также заинтересованы в любой хорошей связи, объясняющей установку из запросы, отображение, лежащие в основе конструкции и т.д ..

С наилучшими пожеланиями Алекс

ответ

3

HQL ориентирован на объекты, и это делается с целью работы с объектами Java, представляющими ваши таблицы БД. Основным преимуществом является то, что вы можете помещать заполнители, такие как :orderNumber (с использованием символа двоеточия) в запросе HQL и заменить значением переменной. Например:

int orderNumber = 685412; 
List<Order> l= 
    session.createQuery("from Order where orderNumber = :orderNumber") 
    .setParameter("orderNumber",orderNumber).list(); 

Таким образом, вы можете изменить orderNumber простым способом, evoiding классический

String query = "select * from Order where orderNumber = " + orderNumber + "..."; 

Morover с использованием синтаксиса MySQL иногда превратить ваш код не подлежит повторному использованию, если перенести БД на другой СУБД. Так или иначе, я все еще не настолько убежден в предпочтении на HQL.

Here вы можете найти полное определение грамматики.

+0

спасибо, что. - Еще один вопрос, поэтому каждый файл .hbm.xml имеет соответствующий java-файл, который должен иметь одно и то же имя! - и если я хочу написать запрос, который включает в себя до трех таблиц, нужно ли мне писать эту ссылку в каждом запросе или я могу написать java-функцию или аналогичную для каждого запроса такую, как helper.java-файл !? –

+0

Возможно, кто-то может рассказать мне больше о настройке файлов, так как я пытаюсь понять существующее веб-приложение (циклос), которое очень полно. Теперь они включают в себя так много java-файлов для обработки доступа к db, что мне трудно следовать потоку. Что бы вы использовали файлы exampleDao.java, например. ?? –

+0

- «каждый файл .hbm.xml имеет соответствующий java-файл, который должен иметь одно и то же имя» -> «Да»; возможно, это не обязательно одно и то же имя (я не уверен), но это настоятельно рекомендуется. В файле hibernate.cfg.xml вы должны поместить записи сопоставления, такие как bluish

Смежные вопросы