LINUX.ORG.RU

tomcat работа с базами


0

0

Пытаюсь использовать tomcat(5.0.30), postgresql (7.4.7).
Приложение - ведение базы данных.

1) Создал соединение с базой (Connection) и записал его в сессию.
Прочитал сохраненную сессию из другого сервлета, при чтении получаю
conn = NULL. ??

2) В документации по tomcat написано, что нужно создать
пул соединений к базе данных.
Принцип построения web-приложений: cервлет/jsp работает с базой,
получает результат и отключается от базы?
В примере описано создание пула для одной базы.
Если на сервере будет несколько приложений каждый со своей базой,
можно создавать пулы для других баз?
Пул создается в файле server.xml. При установке приложения
придется руками его редактировать?

3) Если сервлет состоит из нескольких сервлетов, каждый из которых
работает с базой и получает часть своей информации из базы.
В тексте каждого сервлета должно быть создание соединения и закрытие его?


Re: tomcat работа с базами

Не держи соединения с базой в сессиях. Сервлет не отключается, а возвращает соединение в пул. Что там с соединением дальше будет - не твоя забота. Руками пул редактировать не надо - просто дергай из него коннекты. Открытие/закрытие коннекта должно быть не в тексте сервлета, а в тексте метода, хотя прямое руление базой из сервлета - очень плохая практика. Все же сильно рекомендуется смотреть http://www.springframework.org, http://www.hibernate.org, http://ibatis.apache.org/ ну и далее по вкусу. Книжку еще почитай какую-нибудь :)

svr69 ★★ ()
Ответ на: Re: tomcat работа с базами от svr69

Re: tomcat работа с базами

Почитал http://www.hibernate.org/
Это похоже на изобретение нового языка, заменяющего SQL.
То что я могу описать в SQL, нужно переписывать на Яве.
Дублирование структуры таблиц в файлы xml настроек.

В чем сила подхода www.hibernate.org?
Вы чем из приведенного списка пользуетесь?

WinLin ()
Ответ на: Re: tomcat работа с базами от WinLin

Re: tomcat работа с базами

Лично я пользуюсь hibernate и spring. Сила подобного подхода в том, что это ORM (соответственно, разработчику не надо самостоятельно писать отображение реляционной стуктуры на объектную, управление транзакциями, отслеживание зависимостей данных и т.д.), конкретно hibernate - он практически стандартен на сегодняшний день. Структура таблиц не дублируется в xml, xml описывает маппинг объектов на реляционную структуру. Каноническое использование ORM в том, что сами таблицы, и все, что может потребоваться, создается непосредственно в процессе деплоймента приложения, кроме того перенесение основной тяжести именно на объектный слой позволяет добиться относительной независимости от конкретной БД. Свои подводные камни, конечно, есть, но они обходятся. Spring же позволяет несколько упростить разработку, реализуя такую штуку, как dependency injection (http://martinfowler.com/articles/injection.html), ну и заодно избавиться от оверхедов EJB. В принципе, если есть доступ к ослу, покачай и почитай книги 'Hibernate in action', 'Spring in action', 'Better, Faster, Lighter Java', 'Expert One-on-one J2EE Development without EJB'. Но вообще, тут пока сам не прочувствуешь необходимость все это использовать, все равно не факт, что будешь :)

svr69 ★★ ()
Ответ на: Re: tomcat работа с базами от WinLin

Re: tomcat работа с базами

Hibernate идет с зависимостями - пара реализаций кэша, менеджеры транзакций, пулы и т.д. Там далеко не все надо :)

А, и вдогонку - сами маппинги руками писать не обязательно. Есть такая штука, как http://xdoclet.sf.net, например. Она по javadoc генерит .hbm.xml

svr69 ★★ ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.