JDBC (Java Database Connectivity) — API в стандартной библиотеке Java (пакет java.sql) для взаимодействия с реляционными СУБД. Драйвер JDBC — реализация API для конкретной БД: MySQL Connector/J, PostgreSQL JDBC Driver, Oracle JDBC. Приложение пишется против абстрактного API; замена СУБД требует только смены драйвера и строки подключения.
Как работает
Типичный цикл JDBC:
// Загрузка драйвера (JDBC 4.0+ делает автоматически)
Class.forName("com.mysql.cj.jdbc.Driver");
// Получение соединения
Connection conn = DriverManager.getConnection(
"jdbc:mysql://localhost:3306/dbname", "user", "password");
// Выполнение запроса
PreparedStatement stmt = conn.prepareStatement("SELECT * FROM users WHERE id=?");
stmt.setInt(1, userId);
ResultSet rs = stmt.executeQuery();
PreparedStatement — обязателен для параметризованных запросов: защита от SQL-инъекций и переиспользование плана выполнения.
Пул соединений
Создание JDBC-соединения дорого (50–200 мс). Пулы соединений (HikariCP, Apache DBCP, c3p0) хранят готовые соединения и выдают их приложению по запросу. HikariCP — де-факто стандарт: минимальные накладные расходы, используется в Spring Boot по умолчанию.
История
JDBC 1.0 включён в Java 1.1 (1997). JDBC 2.0 (1999) добавил пакетные операции и row sets. JDBC 3.0 (2001) — savepoints. JDBC 4.0 (2006, Java SE 6) — автоматическая загрузка драйверов через ServiceLoader. JDBC 4.3 (2017, Java SE 9) — последнее значимое обновление. Сейчас большинство приложений использует JDBC через ORM: Hibernate, Spring Data JPA.
Связь с хостингом
На хостинге с Java (Tomcat, Spring Boot) JDBC-соединения к MySQL или PostgreSQL — стандарт. JDBC DataSource конфигурируется в context.xml Tomcat или application.properties Spring. Важно следить за лимитом соединений: max_connections в MySQL (по умолчанию 151) должен превышать размер пула.
Как работает JDBC
JDBC (Java Database Connectivity) -- стандартный Java API для работы с реляционными БД. Приложение использует единый интерфейс java.sql.*, конкретный драйвер (MySQL Connector/J, PostgreSQL JDBC) подключается через URL вида jdbc:mysql://localhost:3306/mydb. JDBC выполняет: установку соединения, выполнение SQL-запросов (Statement, PreparedStatement), обработку ResultSet. Пул соединений (HikariCP, C3P0) обязателен в production: создание нового JDBC-соединения занимает 100--500 мс, пул поддерживает готовые соединения. HikariCP -- fastest connection pool для Java (по бенчмаркам 2023 года), рекомендуется для Spring Boot приложений.
JDBC в хостинге Java
На VPS с Tomcat или Spring Boot: настройте JDBC connection pool с минимум 5 и максимум 20 соединениями для начала. Мониторинг пула через JMX помогает обнаружить connection leaks (утечки соединений -- когда код не закрывает соединение). Хранимые процедуры через JDBC вызываются через CallableStatement. Для MySQL используйте Connector/J 8.x, для PostgreSQL -- postgresql-42.x.x.jar. Драйверы добавляются как Maven-зависимости или в tomcat/lib/. JVM и JDBC -- основа Java-хостинга.
История JDBC
JDBC 1.0 включён в Java 1.1 (1997). JDBC 2.0 (1998) добавил Scrollable ResultSets и Batch Updates. JDBC 3.0 (2001) -- Savepoints и Named Parameters. JDBC 4.0 (2006, Java 6) добавил автозагрузку драйверов. JDBC 4.3 (2017, Java 9) -- поддержку автозакрытия через try-with-resources. До JDBC каждая БД требовала собственного API, что исключало переносимость кода.