Хороший способ получить значения из базы данных - PullRequest
1 голос
/ 24 марта 2011

Есть ли лучшая практика для получения значений из базы данных в Java?Мои специальные вопросы:

  • как я могу получить доступ к базе данных из всей программы (я использую статический класс с методом init, который вызывается один раз, а затем sycronized блоки)правильный тип объекта?это хороший способ иметь метод, подобный Object getSingeValue(String query)..., а затем выполнить сравнение внутри этого метода, тип которого это с ResultMetaSet?
  • Каков наилучший способ вставки или обновления значений?Я знаю тип и хочу поместить его в ...

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

спасибо!

1 Ответ

3 голосов
/ 24 марта 2011

У вас есть несколько вариантов здесь:

  • JDBC - для низкоуровневого доступа к базам данных
  • ORM как Hibernate - для доступа более высокого уровня

Исходя из вашего вопроса, звучит так, как будто вы хотите использовать инструмент отображения объектов в реляционные, например Hibernate, или один из других инструментов ORM на основе JPA.Как правило, они предоставляют вам высокоуровневый способ запроса вашей базы данных и возврата полностью сформированных объектов Java.

Чтобы ответить на ваши вопросы:

как я могу получить доступ к базе данных из всей программы

Обычно эта проблема решается не слоем базы данных, а шаблоном проектирования, таким как Dependency Injection, который дает вам возможность построить все ваши объекты и передать им соответствующие зависимости (например, базу данных).подключение).См. Spring Framework для примера DI в действии.

Как я могу получить правильный тип объекта?

Инструменты ORM обычно устанавливают отношения между конкретной таблицей и объектом Java.Тем не менее, даже с ORM вы будете передавать «шаблон» нужного вам объекта, поэтому, если вы пишете свой собственный, часто используется такой шаблон:

session.createCriteria(MyMappedObject.class).list()

Каков наилучший способ вставки или обновления значений?

Опять же, ORM поможет, и шаблон, как правило, просто передает объект, который вы хотите сохранить.Вы можете использовать внешнюю конфигурацию, такую ​​как XML или аннотации, чтобы ваш объект на уровне реляционного отображения знал, как преобразовать ваш объект в соответствующие строки и столбцы.Сохранение или обновление в стандартном ORM, таком как Hibernate, тогда так просто:

session.saveOrUpdate(myObject);

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

Hibernate или большинство других JPM 2.0 ORM звучат так, как вам нужно.

...