JPA новичок не может взаимодействовать с базой данных - PullRequest
0 голосов
/ 01 апреля 2011

Я начал использовать JPA не так давно, и я думаю, что это здорово, потому что его аннотации делают программирование таким простым. Но у меня все еще есть немного сомнений, которые немного меня тормозят (в большинстве случаев это касается вопросов конфигурации):

  1. Я хотел бы понять разницу между DB Derby, который входит в OEPE (Oracle Enterprise Pack для Eclipse), я использовал это для своего обучения, и популярной MySQL DB (www.mysql.com) , Что меня смущает, так это какая разница со встроенной БД и не встроенной. Что лучше, что вы рекомендуете?

  2. Второе сомнение касается некоторой проблемы конфигурации, которую я не могу исправить с помощью своей базы данных derby (не в встроенном режиме). Я уже задал вопрос, но не смог это исправить. Проблема в том, что когда я пытаюсь получить доступ к некоторым таблицам моей БД (таблицы существуют в базе данных, они были созданы функцией JPA, генерируют таблицы из сущностей), я получаю исключение SQLSyntaxErrorException, в котором говорится, что таблицы не существуют. Я знаю, что это невозможно, потому что тот же запрос, вставленный вручную в записную книжку затмений, работает правильно. Я знаю, что есть что-то, что может сделать какую-то проблему с конфигурацией, но я не знаю, что это такое. Я буду очень рад, если кто-то с немного большим опытом работы с JPA сможет мне помочь.

Инструменты, которые я использую для программирования, - Eclipse + OEPE, Java EE 6 и GlassfishV3.0

Это ссылка на другой мой вопрос, где я объясню проблему более подробно: SQLSyntaxErrorException: таблица / представление «ПОКУПАТЕЛЬ» не существует. Чего не хватает?

Заранее спасибо.

1 Ответ

1 голос
/ 02 апреля 2011

По вопросу 1:

Derby / JavaDB имеет два режима работы (цитируемая форма Документация JavaDB ):

Embedded

Относится к тому, что Derby запускается простым однопользовательским Java-приложением.С этой опцией Derby работает на той же виртуальной машине Java (JVM), что и приложение.Derby может быть почти невидимым для конечного пользователя, потому что он запускается и останавливается приложением и часто не требует администрирования.В документации по Derby это часто упоминается как встроенная конфигурация или встроенный режим.

Сервер (или на основе сервера)

Относится к тому, что Derby являетсязапускается приложением, которое обеспечивает многопользовательское подключение к базам данных Derby по сети.С этой опцией Derby запускается на виртуальной машине Java (JVM), на которой размещается Сервер.Приложения подключаются к Серверу из разных JVM для доступа к базе данных.Сетевой сервер Derby является частью дистрибутива программного обеспечения Derby и предоставляет этот тип инфраструктуры для Derby.Derby также хорошо работает с другими, независимо разработанными серверными приложениями.В документации по Derby это часто упоминается как конфигурация сетевого сервера или конфигурация клиент / сервер.

По моему опыту, основные различия обоих режимов заключаются в том, что во встроенном режиме база данных является частью вашего приложения.и только один пользователь может подключиться к базе данных.

В режиме сервера база данных не является частью вашего приложения, работает в другой JVM или на другом компьютере и работает в многопользовательском режиме / режиме нескольких подключений.

Что касается сравнения JavaDB и MySQL , я думаю, что это зависит от вашего приложения и функциональных требований.Быстрый поиск в Google показал это сравнение реляционных систем БД (дерби можно найти там под буквой "A" для Apache Derby).

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