![]() |
Модераторы: LSD, AntonSaburov |
![]() ![]() ![]() |
|
NewProgr |
|
|||
Новичок Профиль Группа: Участник Сообщений: 11 Регистрация: 19.5.2006 Репутация: нет Всего: нет |
Подскажите, пожалуйста, кому не сложно самый простой способ создания Connection с базой MySql
(чем подробнее, тем лучше) для сервера Tomcat 4.1 пусть: база MySQL: javatest user : Test password : test Заранее благодарен |
|||
|
||||
Alexandr87 |
|
|||
![]() дыкий псых ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1459 Регистрация: 27.11.2004 Где: Алматы, Казахстан Репутация: 6 Всего: 39 |
я предпочитаю использовать источники данных, получаемых по jndi.
http://tomcat.apache.org/tomcat-4.1-doc/jn...ples-howto.html но можно использовать jdbc напрямую http://www.developer.com/java/data/article.php/3417381 Это сообщение отредактировал(а) Alexandr87 - 6.9.2006, 06:48 |
|||
|
||||
Gliven |
|
||||||
Новичок Профиль Группа: Участник Сообщений: 5 Регистрация: 6.9.2006 Репутация: нет Всего: нет |
Вот еще способ конекшена через JDBC:
Или через hibernate:
Добавлено @ 20:55 Да, забыл сказать, прописи пароля, базы описываешь в hibernate.cfg.xml:
Данный xml описан под работу с MySQL. |
||||||
|
|||||||
tux |
|
|||
![]() Летатель ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1853 Регистрация: 10.2.2005 Где: msk.ru Репутация: 74 Всего: 132 |
Gliven, настройки соединения с MySQL в Tomcat ведь попросили, а не как настроить Hibernate.
|
|||
|
||||
Bulat |
|
||||
![]() татарский Нео ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1701 Регистрация: 22.3.2006 Где: Альметьевск Репутация: нет Всего: 57 |
Ну томкат, не томкат, что-то не видел особых различий и при использовании Hibernate или JDBC, что в томкате или вне его. А так вот JDBC, чуть попроще чем Hibernate, более стандартный. Вот тебе класс с коннектом и дестроем ![]()
P.S. Вроде бы все верно(сократил свой класс, он у меня побольше и помуторнее, оставив только минимум необходимого ![]() -------------------- менеджер по кодеврайтингу ![]() |
||||
|
|||||
tux |
|
|||
![]() Летатель ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1853 Регистрация: 10.2.2005 Где: msk.ru Репутация: 74 Всего: 132 |
Bulat, одно замечание насчет использования твоего кода в production. Если у тебя этот класс используется в толстом клиенте (например, Swing-приложение), то его применение вполне оправдано. Один пользователь - одно соединение, которое поддерживается в открытом состоянии на все время работы приложения.
Если это веб-приложение, то здесь все несколько сложнее. В принципе можно использовать ту же самую схему - подключается новый пользователь, открывается соединение и использует постоянно на протяжении сеанса. Но веб-приложения традиционно обслуживают большее число пользователей чем разработанные по схеме толстый клиент. Да и в том случае если подразумевается, что со Swing-приложением будет работать очень большое количество пользователей такая схема не применяется. Причина проста: каждое соединение - это область памяти на сервере, может быть и не очень большая, но когда их много, это становится проблемой. Кроме того, поток запросов от пользователей, как правило, не очень интенсивен. Получается, что подавляющую часть времени это огромное число соединений не используется. А это, сам понимаешь, не эффективно. Кроме того, таким образом можно легко превысить максимальное количество соединений, которые СУБД может открыть. Как же бороться с этой неэффективностью? А проблема решается достаточно просто. Во всех реальных больших веб-системах, работающих с базами данных используются пулы соединений. Создается массив соединений, ограниченный по количеству снизу и сверху (то есть минимальное количество соединений, которые открыты всегда и максимальное, больше которого открыть не разрешается чтобы не превысить ограничения СУБД). При попытке получить пользователем новое соединение менеджер пула соединений сначала смотрит а нет ли среди открытых соединений свободных, которые могут быть использованы. Если есть, то возвращает одно из них. Если нет, то проверяет не превышено ли доступное количество открытых соединений. Если нет, то открывает новое и возвращает клиенту. Если превышено, то запрос на соединение просто блокируется до тех пор пока хотя бы одно из соединений не освободится. При закрытии соединения клиентом соединение не закрывается реально, а помещается в массив свободных соединений. Что получаем в результате:
Кстати, Hibernate даже в дефолтной кофигурации все-таки использует пул соединений, правда свой собственный и совсем простенький. И они рекомендуют использовать Hibernate на реальной нагрузке только в комбинации с какой-нибудь серьезной библиотекой, обеспечивающей организацию пула. |
|||
|
||||
Bulat |
|
|||
![]() татарский Нео ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1701 Регистрация: 22.3.2006 Где: Альметьевск Репутация: нет Всего: 57 |
А зачем только тоскать соединение на протяжении сеанса? Если у меня пользователь пассивно весит, т.е. в браузере открыта страница, так и может висеть весь день а то и больше? Если ему что-то надо приконнектился, вывел необходимые данные на страницу, закрыл коннект. -------------------- менеджер по кодеврайтингу ![]() |
|||
|
||||
tux |
|
|||
![]() Летатель ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1853 Регистрация: 10.2.2005 Где: msk.ru Репутация: 74 Всего: 132 |
Тогда длительность подключения может в конечном счете сказать на производительности. Согласен, в MySQL создание соединения проходит достаточно быстро и на приложении с небольшим числом клиентов ощутимой разницы не будет. Но в многих СУБД процесс подключения хорошо заметен даже на глаз. Кроме того, еще одно достоинство пула - можно контролировать количество одновременно открытых соединений в то время как в твоей конструкции при превышении лимита СУБД во время пиковых нагрузок просто будет отказывать в подключении. |
|||
|
||||
Bulat |
|
|||
![]() татарский Нео ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1701 Регистрация: 22.3.2006 Где: Альметьевск Репутация: нет Всего: 57 |
Это уже другой вопрос, и тут я с тобой полностью согласен ![]() Надо всегда смотреть по обстоятельствам -------------------- менеджер по кодеврайтингу ![]() |
|||
|
||||
NewProgr |
|
|||
Новичок Профиль Группа: Участник Сообщений: 11 Регистрация: 19.5.2006 Репутация: нет Всего: нет |
Народ, огромное спасибо за участие.
Сделал на JNDI. А как на JSP странице писать русскими буквами при настройке :
т.е. чтобы русский текст в html тегах отображался корректно? |
|||
|
||||
tux |
|
|||
![]() Летатель ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1853 Регистрация: 10.2.2005 Где: msk.ru Репутация: 74 Всего: 132 |
|
|||
|
||||
NewProgr |
|
|||
Новичок Профиль Группа: Участник Сообщений: 11 Регистрация: 19.5.2006 Репутация: нет Всего: нет |
Виноват, извиняюсь
![]() |
|||
|
||||
![]() ![]() ![]() |
Правила форума "Java" | |
|
Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, tux. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Java EE (J2EE) и Spring | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |