2010-02-24 8 views
2

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

Я проверил это: How do I access a database from my servlet or JSP? Но я видел комментарии к статье о том, что это плохой способ подключения. Может ли кто-нибудь объяснить или показать мне лучший способ, который я должен использовать для доступа к моей базе данных дерби?

спасибо.

ответ

6

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

Итак, что делать? Возьмите учебник JDBC. official one - отличный выбор здесь. Это даст вам хорошее представление о подключении к базе данных с Java и освоить JDBC API. После этого вы должны пойти и прочитать о DAO pattern, и как мы employ that in real apps.

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

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

3

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

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

2

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

2

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

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

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

Смежные вопросы