Когда вы используете базу данных в сервлете, лучше позволить контейнеру сервлета управлять соединениями с базой данных через пул соединений, а не напрямую получать соединение с базой данных в сервлете.
Открытиеподключение к серверу базы данных является относительно медленной операцией.Кроме того, количество соединений, которые база данных может обрабатывать одновременно, ограничено.Ваше приложение будет медленным и не очень масштабируемым, когда вы открываете соединение с базой данных каждый раз, когда вам нужен доступ к базе данных.Кроме того, соединения с базой данных не являются поточно-ориентированными, поэтому вы не можете хранить соединение с базой данных в статической переменной-члене сервлета и использовать это каждый раз.
Пул соединений управляет рядом открытых соединений для вас (так чточто вам не нужно открывать соединение каждый раз, когда вам нужен доступ к базе данных), и управляет количеством соединений, которые открыты одновременно.Например, в Apache Tomcat вы можете настроить это так, чтобы вы искали объект javax.sql.DataSource
через JNDI, который затем используете для получения объекта Connection
.
На этой странице объясняется, как настроить Tomcat и использоватьa DataSource
в вашем сервлете:
JNDI Источник данных HOW-TO
Если вы не хотите этого делать и хотите продолжать использовать соединения с базой данных из вашего сервлета(что я не рекомендую), тогда вы можете загрузить драйвер в блок статического инициализатора в вашем сервлете:
public class MyServlet extends HttpServlet {
static {
Class.forName("com.mysql.jdbc.Driver");
}
// ...
}
Обратите внимание, что в JDBC 4.0 загрузка драйвера явно больше не требуется;JDBC автоматически найдет драйверы, если они находятся в пути к классам.