| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Java EE (J2EE) и Spring > как хранить connection к базе....? |
| Автор: xoma 21.2.2008, 13:41 |
| Добрый день! Вопрос вот такой.....есть некий сервлет....который обрабатывает все запросы....так же этот сервлет создает коннект к базе..... После этого в зависимости от запроса - сервлет перенаправляет пользователя на нужную страничку.... Вопрос...как и где правльно хранить коннект к базе - что бы он был доступен целевой страничке(ну или сервлету)....я нашел несколько вариантов... 1) в контексте всего приложения... 2) как атрибут запроса, при редиректе на целевую страничку(или сервлетик)... |
| Автор: Llucas 21.2.2008, 15:39 |
| А фреймворки не думал использовать ? |
| Автор: xoma 21.2.2008, 15:46 |
| нельзя....по заданию можно только "чистые" сервлеты и jsp..... p.s. а какой фреймворк подойдет??? |
| Автор: v2v 21.2.2008, 16:09 | ||
| не надо фреймворки.! конекшины например можно хранить в server.xml
|
| Автор: Llucas 21.2.2008, 23:14 | ||
Это почему же не надо? Подойдет например Spring. |
| Автор: v2v 21.2.2008, 23:16 |
| А ЗАЧЕМ? Добавлено через 1 минуту и 5 секунд может быть человеку надо получить доступ к базе достать оттуда одну табличку и разместить это на одной jsp страничке. для этого надо использовать фреймворк!? |
| Автор: VSergeyV 22.2.2008, 07:10 |
т.е. саму инфу о коннекшинах так хранить, чуть дополню - под тем как правильно хранить коннекшины автором топика видимо подразумевалось что-то типа Database Connection Pool - http://tomcat.apache.org/tomcat-6.0-doc/jndi-datasource-examples-howto.html |
| Автор: xoma 22.2.2008, 16:40 |
| Собственно говоря задача вот какая.....есть (как я и писал контроллер, который все обрабатывет)......и есть странички....так вот....я хочу что бы коннект....к базе был доступен на каждой из страничек....я не хочу его каждый раз там создавать.....(аналогичная задача на перле - решалась так....был так же некий контроллер который при каждом обращении к нему создавал коннект как глобальную переменную.....и все последующие скрипты использовали эту глобальную переменную для коннекта)...... |
| Автор: Llucas 25.2.2008, 10:48 |
| Не понял, а я что говорил что нужно всегда использовать фреймворки? С чего это вы взяли, что я такое говорил? Я просто предложил, мало ли как потом разрастется проект, я же не могу знать полную картину того, что хочет xoma. Вы абсолютно не правильно меня закритиковали... |
| Автор: Eustace 25.2.2008, 21:03 |
| xoma, ничего страшного не случится, тягай коннект каждый раз. Твой сервлет может и не дожить до следующего запроса пользователя, так что не факт, что переменная будет должным образом проинициализирована (если, конечно, метод init() не заоверрайдить). На самом деле, App-сервер создаёт пул коннекшенов, так что при запросе на коннект он просто отдаёт тебе уже созданный коннекшн. Это достаточно дёшево по перфомансу, любое исполнение SQL-кода стоит дороже такого коннекта. Как вариант решения могу предложить синглетонный класс, который инкапсулирует логику "взять коннект", а ты просто на каждой страничке будешь вызывать этот метод. |
| Автор: xoma 26.2.2008, 09:50 | ||
Так вот как раз и стоит задача в том что бы при разработке страничек - разработчик не задумывался над тем как и с какой базой ему создать коннект.....Разработчик должен знать что коннект уже есть и он может просто его использовать.... |
| Автор: tux 26.2.2008, 10:01 | ||
А пул соединений в таком случае почему не устраивает? Разработчик может получить источник данных по JNDI-имени, взять у него соединение и просто использовать. Что-то еще нужно? |
| Автор: ProgMaster 27.2.2008, 10:48 |
| Use managed beans for example. |
| Автор: xoma 27.2.2008, 13:06 | ||
Да наверное вариант с пулом соединений подойдет.....(просто сделаю какой-то класс обертку - для более удобного извлечения коннектов....) Спасибо всем! |