JDBC (англ. Java DataBase Connectivity — соединение с базами данных на Java) — платформенно независимый промышленный стандарт взаимодействия Java-приложений с различными СУБД, реализованный в виде пакета java.sql
, входящего в состав Java SE.
История
Интерфейсы
Соединение с базой данных описывается классом, реализующим интерфейс java.sql.Connection
. Имея соединение с базой данных, можно создавать объекты типа Statement, служащие для исполнения запросов к базе данных на языке SQL.
Существуют следующие виды типов Statement, различающихся по назначению:
java.sql.Statement
— Statement общего назначения;java.sql.PreparedStatement
— Statement, служащий для выполнения запросов, содержащих подставляемые параметры (обозначаются символом ‘?’ в теле запроса);java.sql.CallableStatement
— Statement, предназначенный для вызова хранимых процедур.
Интерфейс java.sql.ResultSet
позволяет легко обрабатывать результаты запроса.
Преимущества
- Лёгкость разработки: разработчик может не знать специфики базы данных, с которой работает
- Код практически не меняется, если компания переходит на другую базу данных (количество изменений зависит исключительно от различий между диалектами SQL)
- Не нужно устанавливать громоздкую клиентскую программу
- К любой базе можно подсоединиться через легко описываемый URL.
ODBC и JDBC
Оба продукта являются популярным выбором на рынке.
Ключевые отличия между ODBC и JDBC
- ODBC- стандартный интерфейс прикладного программирования для взаимодействия и доступа к системам управления базами данных, тогда как JDBC- интерфейс прикладного программирования на Java для определения возможностей доступа клиента к БД.
- ODBC может быть реализован и улучшен на любых языках(например, C, C++, Java и т.д.), тогда как JDBC- только на Java.
- ODBC процедурный API, а JDBC- объектно-ориентированный.
- ODBC основан на сервере Microsoft IIS и реализован в системах на базе Windows. JDBC используется на сервере Apache Tomcat и основан на веб-сервере на основе Linux, также работает на серверах приложений JBoss и IBM.
- ODBC выполняется на основе модели архитектуры безопасности Windows NT, JDBC работает на основе модели безопасности Java.
- ODBC зависим от платформы Windows, тогда как JDBC независима от платформы, следовательно, может работать на платформе базы Windows или Linux.
- Архитектура ODBC состоит из четырех компонентов, а JDBC поддерживает как двухуровневые, так и трехуровневые модели обработки БД, в основном из двух уровней: JDBC API и JDBC Driver API.