Как работать с базами данных для сайтов, написанных на Java, точнее Wicket? - PullRequest
3 голосов
/ 07 апреля 2010

Я новичок в разработке веб-сайтов с использованием Java, но я начал с Wicket и создал небольшой веб-сайт. Я хотел бы подробнее рассказать о том, что я уже сделал (веб-сайт с формой, ярлыками и ссылками) и реализовать подключение к базе данных.

Я посмотрел несколько примеров, например Mystic Paste, и вижу, что они используют Hibernate и Spring. Я никогда раньше не касался Hibernate или Spring, и, если честно, интенсивное использование аннотаций меня немного пугает, так как я раньше ими не пользовался, за исключением подавления предупреждений и переопределения.

На данный момент у меня есть один объект Connection, который я установил в классе WebApplication при инициализации. Затем я получаю этот объект подключения всякий раз, когда мне нужно выполнить запросы. Я не знаю, если это плохой подход или нет для производственного веб-приложения.

Вся помощь очень ценится.

Ответы [ 3 ]

3 голосов
/ 07 апреля 2010

Wicket, Spring и Hibernate - в значительной степени стандартный стек для приложений Wicket. Или, скорее, скажем, что любой веб-фреймворк, Spring и Hibernate в значительной степени является стандартным стеком для любого веб-фреймворка.

Что касается Wicket, добавление объектов с использованием @SpringBean внутри компонентов - это очень приятно иметь возможность. Кроме того, OpenSessionInViewFilter управляет сессиями Hibernate для вас (в то время как Hibernate сам заботится о соединениях).

Поэтому я действительно рекомендую вам взглянуть на Spring и Hibernate - оба из них не требуют аннотаций, но в большинстве случаев их проще использовать, чем файлы конфигурации (обычно XML).

Если вы все еще не хотите использовать Spring или Hibernate, я бы посоветовал вам взглянуть на OpenSessionInViewFilter и создать нечто подобное самостоятельно: создать соединение для каждого запроса, использовать его во время одного запроса, закрыть в конце. Так как это не очень хорошо работает, вы можете предпочесть получать соединения из пула, в который вы возвращаете его в конце запроса. Но вместо того, чтобы писать этот код, вы уже можете внедрять bean-компоненты в ваши компоненты;)

2 голосов
/ 19 апреля 2010

Если у вас есть время, вы можете покопаться в Apache Cayenne , это намного легче, чем в Hibernate, и для внедрения зависимостей в сочетании с Google Guice , опять же, очень легким. В Wicket есть подпроект wicket-guice, который обеспечивает DI в компонентах wicket, во многом как Spring Context. ИМХО, это честная альтернатива, пока работает очень хорошо.

2 голосов
/ 07 апреля 2010

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

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

Решением этой проблемы является использование пула соединений.

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