Как связать базу данных Derby с сервлетом? - PullRequest
2 голосов
/ 24 февраля 2010

Я никогда не подключался к базе данных в Java раньше. Могу ли я узнать, должен ли я получить доступ к базе данных derby с помощью сервлета?

Я проверил это: Как получить доступ к базе данных из моего сервлета или JSP? Но я видел комментарии к статье, в которых говорилось, что это плохой способ подключения. Может ли кто-нибудь объяснить или показать мне лучший способ, которым я должен написать код для доступа к моей базе данных derby?

Большое спасибо.

Ответы [ 4 ]

6 голосов
/ 24 февраля 2010

Они действительно правы, предлагая это. Мы не обращаемся к базе данных напрямую из сервлетов или JSP, оба они предназначены для веб-уровня, не так ли?

Итак, что делать? Возьмите учебник JDBC. официальный является отличным выбором здесь. Это даст вам хорошее представление о подключении к базе данных из Java и познакомится с JDBC API. После этого вы должны прочитать шаблон DAO и то, как мы используем его в реальных приложениях .

Более того, я думаю, что вы также должны прочитать о паттерне MVC , потому что мне кажется, что вы тоже не очень понимаете в этом.

Как только вы поймете все это и создадите игрушечное приложение, использующее все эти вещи. Следующим шагом будет изучение механизма Connection Pooling .

3 голосов
/ 24 февраля 2010

Поскольку вы используете servelt, вы должны использовать контейнерную линию Apache Tomcat. Вы должны определить пул соединений следующим образом: http://tomcat.apache.org/tomcat-5.5-doc/jndi-datasource-examples-howto.html. Если вы используете любой другой контейнер, то у него также будет аналогичная настройка.

Другой вариант - создать отдельный класс DBManager, который будет заботиться об инициализации и возврате соединения. Этот класс вы можете использовать в сервлете.

2 голосов
/ 25 февраля 2010

Это «плохой способ», потому что он не использует (управляемый JNDI) пул соединений для получения соединений. Хотя получение соединения стоит «всего лишь» несколько сотен миллисекунд, это оказывает влияние на занятую многопользовательскую среду. Пул подключений будет беспокоиться об открытии и закрытии подключений и немедленно их отключать при каждом вызове getConnection(), так что он фактически стоит почти ноль миллисекунд. Если вы подытожите это в занятой многопользовательской среде, то различия заметны.

Пул соединений обычно должен быть настроен в соответствии с источником данных JNDI, который управляется рассматриваемым контейнером сервлетов. Так как вы не упомянули, какой из них вы используете, я могу в высшей степени указать один из моих ответов, который содержит целевой пример Tomcat 6.0 : здесь .

Надеюсь, это поможет.

2 голосов
/ 24 февраля 2010

Хорошим началом будет использование JDBC и наличие пула приложений на сервере приложений. Вы также можете использовать API для облегчения своей жизни, например, Hibernate.

...