что такое jdbc какие классы интерфейсы относятся к jdbc
Что такое jdbc какие классы интерфейсы относятся к jdbc
JDBC основан на концепции драйверов, которые позволяют получать соединение с базой данных по специально описанному URL. При загрузке драйвер регистрирует себя в системе и в дальнейшем автоматически вызывается, когда программа требует URL, содержащий протокол, за который этот драйвер отвечает.
В чем заключаются преимущества использования JDBC?
Преимуществами JDBC считают:
Что из себя представляет JDBC URL?
JDBC URL состоит из:
Пример JDBC URL для подключения к MySQL базе данных «Test» расположенной по адресу localhost и ожидающей соединений по порту 3306: jdbc:mysql://localhost:3306/Test
Из каких частей стоит JDBC?
JDBC состоит из двух частей:
JDBC превращает вызовы уровня API в «родные» команды того или иного сервера баз данных.
Перечислите основные классы и интерфейсы JDBC.
Перечислите основные типы данных используемые в JDBC. Как они связаны с типами Java?
JDBC Type | Java Object Type |
---|---|
CHAR | String |
VARCHAR | String |
LONGVARCHAR | String |
NUMERIC | java.math.BigDecimal |
DECIMAL | java.math.BigDecimal |
BIT | Boolean |
TINYINT | Integer |
SMALLINT | Integer |
INTEGER | Integer |
BIGINT | Long |
REAL | Float |
FLOAT | Double |
DOUBLE | Double |
BINARY | byte[] |
VARBINARY | byte[] |
LONGVARBINARY | byte[] |
DATE | java.sql.Date |
TIME | java.sql.Time |
TIMESTAMP | java.sql.Timestamp |
CLOB | Clob |
BLOB | Blob |
ARRAY | Array |
STRUCT | Struct |
REF | Ref |
DISTINCT | сопоставление базового типа |
JAVA_OBJECT | базовый класс Java |
Опишите основные этапы работы с базой данных при использовании JDBC.
Как зарегистрировать драйвер JDBC?
Регистрацию драйвера можно осуществить несколькими способами:
Class.forName(«полное имя класса драйвера») ;
Как установить соединение с базой данных?
В качестве параметра может передаваться:
Какие уровни изоляции транзакций поддерживаются в JDBC?
Уровень изолированности транзакций — значение, определяющее уровень, при котором в транзакции допускаются несогласованные данные, то есть степень изолированности одной транзакции от другой. Более высокий уровень изолированности повышает точность данных, но при этом может снижаться количество параллельно выполняемых транзакций. С другой стороны, более низкий уровень изолированности позволяет выполнять больше параллельных транзакций, но снижает точность данных.
Во время использования транзакций, для обеспечения целостности данных, СУБД использует блокировки, чтобы заблокировать доступ других обращений к данным, участвующим в транзакции. Такие блокировки необходимы, чтобы предотвратить:
«грязное» чтение (dirty read) — чтение данных, добавленных или изменённых транзакцией, которая впоследствии не подтвердится (откатится);
неповторяющееся чтение (non-repeatable read) — при повторном чтении в рамках одной транзакции ранее прочитанные данные оказываются изменёнными;
фантомное чтение (phantom reads) — ситуация, когда при повторном чтении в рамках одной транзакции одна и та же выборка дает разные множества строк.
Уровни изоляции транзакций определены в виде констант интерфейса java.sql.Connection :
TRANSACTION_NONE – драйвер не поддерживает транзакции;
TRANSACTION_READ_UNCOMMITTED – позволяет транзакциям видеть несохраненные изменения данных: разрешает грязное, непроверяющееся и фантомное чтения;
TRANSACTION_READ_COMMITTED – любое изменение, сделанное в транзакции, не видно вне неё, пока она не сохранена: предотвращает грязное чтение, но разрешает непроверяющееся и фантомное;
TRANSACTION_REPEATABLE_READ – запрещает грязное и непроверяющееся, фантомное чтение разрешено;
TRANSACTION_SERIALIZABLE – грязное, непроверяющееся и фантомное чтения запрещены.
NB! Сервер базы данных может не поддерживать все уровни изоляции. Интерфейс java.sql.DatabaseMetaData предоставляет информацию об уровнях изолированности транзакций, которые поддерживаются данной СУБД.
При помощи чего формируются запросы к базе данных?
Для выполнения запросов к базе данных в Java используются три интерфейса:
Объекты-носители интерфейсов создаются при помощи методов объекта java.sql.Connection :
Чем отличается Statement от PreparedStatement?
Перед выполнением СУБД разбирает каждый запрос, оптимизирует его и создает «план» (query plan) его выполнения. Если один и тот же запрос выполняется несколько раз, то СУБД в состоянии кэшировать план его выполнения и не производить этапов разборки и оптимизации повторно. Благодаря этому запрос выполняется быстрее.
Суммируя: PreparedStatement выгодно отличается от Statement тем, что при повторном использовании с одним или несколькими наборами параметров позволяет получить преимущества заранее прекомпилированного и кэшированного запроса, помогая при этом избежать SQL Injection.
Как осуществляется запрос к базе данных и обработка результатов?
Выполнение запросов осуществляется при помощи вызова методов объекта, реализующего интерфейс java.sql.Statement :
Как вызвать хранимую процедуру?
Выбор объекта зависит от характеристик хранимой процедуры:
Если неизвестно, как была определена хранимая процедура, для получения информации о хранимой процедуре (например, имен и типов параметров) можно использовать методы java.sql.DatabaseMetaData позволяющие получить информацию о структуре источника данных.
Пример вызова хранимой процедуры с входными и выходными параметрами:
Как закрыть соединение с базой данных?
Соединение с базой данной закрывается вызовом метода close() у соответствующего объекта java.sql.Connection или посредством использования механизма try-with-resources при создании такого объекта, появившегося в Java 7.
NB! Предварительно необходимо закрыть все запросы созданные этим соединением.
Руководство по JDBC. Введение.
Что такое JDBC?
Java Database Connectivity – это стандартный API для независимого соединения языка программирования Java с различными базами данных (далее – БД).
JDBC решает следующие задачи:
Если говорить в целом, то JDBC – это библиотека, которая обеспечивает целый набор интерфейсов для доступа к различным БД.
Для доступа к каждой конкретной БД необходим специальный JDBC – драйвер, который является адаптером Java – приложения к БД.
Строение JDBC
JDBC поддерживает как 2-звенную, так и 3-звенную модель работы с БД, но в общем виде, JDBC состоит из двух слоёв.
JDBC API использует менеджер драйверов и специальные драйверы БД для обеспечения подключения к различным базам данных.
JBDC Manager проверяет соответствие драйвера и конкретной БД. Он поддерживает возможность использования нескольких драйверов одновременно для одновременной работы с несколькими видами БД.
Схематично, JDBC можно представить в таком виде:
Рассмотрим элементы JDBC по отдельности.
Элементы JDBC
JDBC API состоит из следующих элементов:
Пакеты JDBC
Ключевыми пакетами JDBC являются java.sql и javax.sql. На момент написания этого руководства, текущей версией JDBC является JDBC 4.0.
С отличиями этой спецификации от предыдущих вы можете ознакомиться в JDBC Specification.
Вот основные изменения:
В этом уроке мы ознакомились с основами JDBC и рассмотрели его архитектуру.
В следующем уроке мы рассмотрим базовый синтаксис языка SQL.
Что такое jdbc какие классы интерфейсы относятся к jdbc
нЩ РПРЩФБЕНУС ТБЪПВТБФШУС У ПУОПЧОЩНЙ РПОСФЙСНЙ JDBC, РПУМЕДПЧБФЕМШОП ТБЪВЙТБС УПДЕТЦБОЙЕ УРЕГЙЖЙЛБГЙЙ. оБДЕАУШ, ЮФП ЬФПФ НБФЕТЙБМ ПЛБЦЕФУС ОЕ РТПУФП ЧЧЕДЕОЙЕН ЙМЙ ПВЪПТПН JDBC, ОП Й ЮЕН-ФП ЧТПДЕ ОБЧЙЗБФПТБ РП УРЕГЙЖЙЛБГЙЙ. дМС ЬФПЗП Ч ЛБЮЕУФЧЕ ТБЪДЕМПЧ ПУОПЧОПК ЮБУФЙ УФБФШЙ ЙУРПМШЪПЧБМЙУШ ОБЪЧБОЙС ЗМБЧ УРЕГЙЖЙЛБГЙЙ У РТЙЧЕДЕОЙЕН ЙИ ПТЙЗЙОБМШОЩИ ОБЪЧБОЙК.
уРЕГЙЖЙЛБГЙС
1. чЧЕДЕОЙЕ (Introduction)
JDBC, ФБЛЦЕ ЛБЛ Й Microsoft ODBC Й Borland DataBase Engine (BDE), ВБЪЙТХЕФУС ОБ X/Open SQL CLI (Call Level Interface). бЧФПТЩ УРЕГЙЖЙЛБГЙЙ ПВТБЭБАФ ПУПВПЕ ЧОЙНБОЙЕ ОБ ФП, ЮФП ЙИ ПУОПЧОБС ЪБДБЮБ УПУФПЙФ Ч ПРЙУБОЙЙ ПУОПЧОЩИ БВУФТБЛГЙК Й ЛПОГЕРГЙК, ПРТЕДЕМЕООЩИ Ч X/Open CLI, Ч ЧЙДЕ ОБФХТБМШОЩИ («ТПДОЩИ») ЙОФЕТЖЕКУПЧ Java.
дМС ФПЗП ЮФПВЩ МХЮЫЕ РПОСФШ УХФШ РПДИПДБ, ЙУРПМШЪХЕНПЗП Ч JDBC, ОБРПНОА, ЮФП РТЕДУФБЧМСАФ ЙЪ УЕВС ЙОФЕТЖЕКУЩ Java. ч ПФМЙЮЙЕ ПФ ЛМБУУПЧ, ЪБЛМАЮБАЭЙИ Ч УЕВЕ ЛБЛ ПВЯСЧМЕОЙЕ, ФБЛ Й ТЕБМЙЪБГЙА НЕФПДПЧ, ЙОФЕТЖЕКУЩ ПВЕУРЕЮЙЧБАФ ВПМЕЕ ЧЩУПЛЙК ХТПЧЕОШ БВУФТБЛГЙЙ, ПРЙУЩЧБС ФПМШЛП ПВЯСЧМЕОЙС НЕФПДПЧ. хЮЙФЩЧБС ЧПЪНПЦОПУФШ ОБУМЕДПЧБОЙС, РТЙЮЕН ОБУМЕДПЧБОЙС НОПЦЕУФЧЕООПЗП (Ч ПФМЙЮЙЕ ПФ ЛМБУУПЧ), ФБЛПК РПДИПД РПЪЧПМСЕФ УПЪДБЧБФШ РТПЗТБННЩ, РТЕДОБЪОБЮЕООЩЕ ДМС ТБВПФЩ У ВБЪБНЙ ДБООЩИ, ОЕ ЪБЧЙУСЭЙЕ ПФ ЛПОЛТЕФОПК ТЕБМЙЪБГЙЙ ЛБЛ УБНПК ухвд, ФБЛ Й НЕФПДПЧ ДПУФХРБ Л ОЕК. дМС ФПЗП ЮФПВЩ ПВТБФЙФШУС Л ЛПОЛТЕФОПК ухвд (РПДТБЪХНЕЧБАФУС УЕТЧЕТЩ ВБЪ ДБООЩИ), ВХДШ ЬФП Oracle, Informix, InterBase ЙМЙ ЮФП-ФП ДТХЗПЕ, ТБЪТБВПФЮЙЛХ ОЕПВИПДЙН JDBC-ДТБКЧЕТ. ч ЛПОГЕРГЙЙ ХОЙЧЕТУЙБМЙЪБГЙЙ ДПУФХРБ Л ДБООЩН ЮЕТЕЪ УФБОДБТФОЩЕ ЙОФЕТЖЕКУЩ (НЩ ЙИ ТБУУНПФТЙН ОЙЦЕ Ч ЬФПК УФБФШЕ) JDBC-ДТБКЧЕТ ЕУФШ УПЧПЛХРОПУФШ ЛМБУУПЧ, ТЕБМЙЪХАЭЙИ JDBC-ЙОФЕТЖЕКУЩ. рПД ТЕБМЙЪБГЙЕК ЙОФЕТЖЕКУБ Ч Java РПОЙНБЕФУС УПЪДБОЙЕ ЛМБУУБ, УУЩМБАЭЕЗПУС Ч УЧПЕН ПВЯСЧМЕОЙЙ ОБ ЙОФЕТЖЕКУ Й РТЕДМБЗБАЭЕЗП ЛПОЛТЕФОХА ТЕБМЙЪБГЙА НЕФПДПЧ ЙОФЕТЖЕКУБ ХЦЕ Ч ЧЙДЕ НЕФПДПЧ ДБООПЗП ЛМБУУБ.
2. гЕМЙ Й ЖЙМПУПЖЙС (Goals and phylosophy)
ьФПФ ТБЪДЕМ УРЕГЙЖЙЛБГЙЙ ПРТЕДЕМСЕФ РТЙПТЙФЕФЩ, ЪБМПЦЕООЩЕ Ч ПУОПЧХ ЧЪБЙНПДЕКУФЧЙС Java-РТПЗТБНН Й ВБЪ ДБООЩИ.
3. пВЪПТ ПУОПЧОЩИ ЙОФЕТЖЕКУПЧ (Overview of the major interfaces)
дБООЩК ТБЪДЕМ ДБЕФ ЛТБФЛПЕ ПРЙУБОЙЕ ВБЪПЧЩИ ЙОФЕТЖЕКУПЧ (3.1 The JDBC API) Й ЙОФЕТЖЕКУБ ДТБКЧЕТБ (3.2 The JDBC Driver Interface).
рЕТЧБС ЮБУФШ ЬФПЗП ТБЪДЕМБ ЧЩДЕМСЕФ ЛБЛ ОБЙВПМЕЕ ЧБЦОЩЕ УМЕДХАЭЙЕ ЙОФЕТЖЕКУЩ (ПВЭБС УИЕНБ ЙИ ЧЪБЙНПДЕКУФЧЙС РТЕДУФБЧМЕОБ ОБ ТЙУ. 1):
тЙУХОПЛ 1.
пУОПЧОЩЕ ЙОФЕТЖЕКУЩ JDBC.
оБЛПОЕГ, РТЙЧЕДЕН РТПУФЕКЫЙК РТЙНЕТ ХУФБОПЧЛЙ УПЕДЙОЕОЙС Й РПМХЮЕОЙС ДБООЩИ ЙЪ вд:
тЙУХОПЛ 2.
хТПЧОЙ ТЕБМЙЪБГЙЙ JDBC API.
лПОЕЮОП, Ч ТЕБМШОПК УЙУФЕНЕ ОБН ОЕПВИПДЙНП ПВТБВПФБФШ ЧПЪНПЦОЩЕ ЙУЛМАЮЙФЕМШОЩЕ УЙФХБГЙЙ, ЛПФПТЩЕ НПЗХФ ЧПЪОЙЛОХФШ РТЙ ОЕРТБЧЙМШОПН ЧЧПДЕ РБТПМС, ХЛБЪБОЙЙ ОЕУХЭЕУФЧХАЭЕК ФБВМЙГЩ Ч SQL-ЪБРТПУЕ Й Ф.Р. пДОБЛП, РПУФТПЕОЙЕ РПМОПЖХОЛГЙПОБМШОПЗП РТЙМПЦЕОЙС ОЕ ЕУФШ ГЕМШ ДБООПК УФБФШЙ, ПУФБЧЙН ЕЕ БЧФПТБН ЛОЙЗ РП Java Й JDBC.
4. уГЕОБТЙЙ ЙУРПМШЪПЧБОЙС (Scenarios of using)
ч ЬФПН УМХЮБЕ УГЕОБТЙК ЧЪБЙНПДЕКУФЧЙС ФБЛПЗП БРРМЕФБ У вд ВХДЕФ ОБРПНЙОБФШ УМЕДХАЭЙК (УН. ТЙУ. 3).
ч ЪБЧЙУЙНПУФЙ ПФ ЛПОЛТЕФОПК БТИЙФЕЛФХТЩ ТЕБМЙЪБГЙЙ ДТБКЧЕТБ ЛМЙЕОФУЛБС ЮБУФШ УЕТЧЕТБ ВБЪ ДБООЩИ НПЦЕФ РТЙУХФУФЧПЧБФШ ОБ ЛМЙЕОФЕ ЙМЙ ФПМШЛП ОБ web-УЕТЧЕТЕ (ЙМЙ ДТХЗПН УЕТЧЕТЕ, ДПУФХРОПН Ч УЕФЙ). ч РЕТЧПН УМХЮБЕ JDBC-ДТБКЧЕТ ПВЩЮОП ТЕБМЙЪХЕФУС ЛБЛ ОБВПТ Java-ЛМБУУПЧ, ПРЙУЩЧБАЭЙИ ЙОФЕТЖЕКУЩ java.sql.* ЮЕТЕЪ native-ЧЩЪПЧЩ (РМБФЖПТНОП-ЪБЧЙУЙНЩК ЛПД). чП ЧФПТПН УМХЮБЕ JDBC-ДТБКЧЕТ ПВЩЮОП ОБЪЩЧБАФ JDBC-Net. пО ОБРЙУБО ГЕМЙЛПН ОБ Java Й ПВТБЭБЕФУС Л УЕТЧЕТХ ВБЪ ДБООЩИ РП TCP/IP, ЖПТНЙТХС ДЕКФБЗТБННЩ Ч ЖПТНБФЕ, РПОСФОПН УЕТЧЕТХ.
рПОСФОП, ЮФП ФЙРЙЮОЩЕ БРРМЕФЩ ПФМЙЮБАФУС ПФ ФТБДЙГЙПООЩИ РТЙМПЦЕОЙК ВБЪ ДБООЩИ ГЕМЩН ТСДПН ПУПВЕООПУФЕК:
бТИЙФЕЛФХТБ Java РПЪЧПМСЕФ ФБЛЦЕ УПЪДБЧБФШ Й УБНПУФПСФЕМШОЩЕ РТЙМПЦЕОЙС (4.2). лПОЕЮОП, ПОЙ, ЛБЛ Й БРРМЕФЩ, ЧЩРПМОСАФУС ЧЙТФХБМШОПК НБЫЙОПК, ОП Ч ПФМЙЮЙЕ ПФ РПУМЕДОЙИ УХЭЕУФЧХАФ ЧОЕ ЛПОФЕЛУФБ web-ДПЛХНЕОФПЧ. ч ЬФПН УМХЮБЕ УГЕОБТЙК ПФМЙЮБЕФ ПФ ПРЙУБООПЗП ЧЩЫЕ ПФУХФУФЧЙЕ РХОЛФБ 1, Б ПЗТБОЙЮЕОЙС ОБ ДПУФХР Л МПЛБМШОЩН ТЕУХТУБН УОЙНБЕФУС ДП ХТПЧОС ПВТБЭЕОЙС Л ОЙН ЮЕТЕЪ ЧЙТФХБМШОХА НБЫЙОХ (УН. ТЙУ. 3).
тЙУХОПЛ 3.
чЪБЙНПДЕКУФЧЙЕ РТЙМПЦЕОЙС У вд.
лТПНЕ ДЧХИ ПУОПЧОЩИ УГЕОБТЙЕЧ, ПРЙУБООЩИ ЧЩЫЕ, ЬФПФ ТБЪДЕМ УПДЕТЦЙФ Й ХРПНЙОБОЙЕ «ВЕЪПРБУОЩИ» (trusted) БРРМЕФПЧ Й ФТЕИЪЧЕООПК НПДЕМЙ (4.3 Other scenarios). вЕЪПРБУОЩЕ БРРМЕФЩ ЧЛМАЮБАФ ЛТЙРФПЗТБЖЙЮЕУЛЙК ЛМАЮ Й НПЗХФ, ЛБЛ Й РТЙМПЦЕОЙС, ПВТБЭБФШУС Л МПЛБМШОЩН ТЕУХТУБН ЮЕТЕЪ ЧЙТФХБМШОХА НБЫЙОХ. уМХЮБК ФТЕИ-ХТПЧОЕЧПК БТИЙФЕЛФХТЩ РПДТБЪХНЕЧБЕФ ЧЩЪПЧ ЙЪ БРРМЕФПЧ ЙМЙ РТЙМПЦЕОЙК ОЕ УЕТЧЕТБ ВБЪ ДБООЩИ ОБРТСНХА, Б УЕТЧЕТБ РТЙМПЦЕОЙК/ВЙЪОЕУ-МПЗЙЛЙ, ЛПФПТЩК ХЦЕ, Ч УЧПА ПЮЕТЕДШ, ПУХЭЕУФЧМСЕФ ЧЪБЙНПДЕКУФЧЙЕ У УЕТЧЕТПН вд.
оБ ТЙУ. 4 РТЕДУФБЧМЕОБ ДЙБЗТБННБ ЧЪБЙНПДЕКУФЧЙС Java-ЛПДБ Й ВБЪ ДБООЩИ Ч ФТЕИХТПЧОЕЧПК (ФПЮОЕЕ, НОПЗПХТПЧОЕЧПК N-tier) НПДЕМЙ. лБЛ ЧЩ ЧЙДЙФЕ, Ч ЛБЮЕУФЧЕ ПУОПЧОЩИ УРПУПВПЧ ЧЪБЙНПДЕКУФЧЙС НЕЦДХ Java-РТЙМПЦЕОЙСНЙ (БРРМЕФБНЙ) Й УЕТЧЕТБНЙ УТЕДОЕЗП ЪЧЕОБ ЙУРПМШЪХАФУС RPC (ЧЩЪПЧЩ ХДБМЕООЩИ РТПГЕДХТ) Й CORBA. ч УМХЮБЕ CORBA, ЧППВЭЕ ЗПЧПТС, ЛТПНЕ ЪЧЕОБ ВЙЪОЕУ-МПЗЙЛЙ РТЙУХФУФЧХЕФ Й ORB (ВТПЛЕТ ПВЯЕЛФОЩИ ЪБРТПУПЧ ЙМЙ, ЛБЛ УФБМП РТЙОСФП ОБЪЩЧБФШ Х ОБУ Ч МЙФЕТБФХТЕ, ВТПЛЕТ ПВЯЕЛФОЩИ ЪБСЧПЛ). юФП ЛБУБЕФУС УБНЙИ УЕТЧЕТПЧ РТЙМПЦЕОЙК, ФП Java (Ч ЮБУФОПУФЙ, JDBC) ОЙЛБЛЙИ УРЕГЙБМШОЩИ ФТЕВПЧБОЙК Л ОЙН ОЕ РТЕДЯСЧМСЕФ, ЛБЛ Й Ч УМХЮБЕ У УЕТЧЕТБНЙ ВБЪ ДБООЩИ.
тЙУХОПЛ 4.
фТЕИХТПЧОЕЧБС НПДЕМШ.
5. уППВТБЦЕОЙС ВЕЪПРБУОПУФЙ (Security considerations)
оБЪЧБОЙЕ ТБЪДЕМБ ЗПЧПТЙФ УБНП ЪБ УЕВС. пУОПЧОПК ХРПТ Ч ЪБЭЙФЕ ДПУФХРБ Л ВБЪБН ДБООЩИ ДЕМБЕФУС ОБ ЙУРПМШЪПЧБОЙЕ НЕОЕДЦЕТБ ВЕЪПРБУОПУФЙ Java, ТЕБМЙЪХЕНПЗП ЙУРПМОСАЭЕК УЙУФЕНПК (ЧЙТФХБМШОПК Java-НБЫЙОПК).
ч ПФОПЫЕОЙЙ БРРМЕФПЧ УРЕГЙЖЙЛБГЙС JDBC (5.1 JDBC and untrusted applets) ЖПТНХМЙТХЕФ УМЕДХАЭЙЕ ПУОПЧОЩЕ РПМПЦЕОЙС.
ч ПФОПЫЕОЙЙ Java-РТЙМПЦЕОЙК (5.2 JDBC and Java applications) JDBC ОЕ ОБЛМБДЩЧБЕФ ОЙЛБЛЙИ УРЕГЙБМШОЩИ ПЗТБОЙЮЕОЙК, ЪБЗТХЦБС ДТБКЧЕТЩ ЙЪ МПЛБМШОПЗП РХФЙ ЙНЕО. пДОБЛП, ЕУМЙ ЛМБУУ sql.Driver ЪБЗТХЦБЕФУС ЙЪ ХДБМЕООПЗП ЙУФПЮОЙЛБ, ЬФПФ ДТБКЧЕТ НПЦЕФ ВЩФШ ЙУРПМШЪПЧБО ФПМШЛП ФЕН ЪБЗТХЦБЕНЩН ЛПДПН, ЛПФПТЩК ЙНЕЕФ ПДЙО Й ФПФ ЦЕ ЙУФПЮОЙЛ У ЬФЙН ЛМБУУПН.
ч ЛБЮЕУФЧЕ ЫБВМПОБ РТЙЛМБДОПЗП ЛПДБ РТПЧЕТЛЙ ДПУФХР ОБ ХТПЧОЕ УЕФЕЧПЗП ЧЪБЙНПДЕКУФЧЙС (5.3 network security), ЕЭЕ ДП ПФЛТЩФЙС УЕУУЙЙ ЧЪБЙНПДЕКУФЧЙС У ВБЪПК ДБООЩИ, РТЕДМБЗБЕФУС УМЕДХАЭЕЕ:
дБМЕЕ ОБЮЙОБАФ ТБВПФБФШ НЕИБОЙЪНЩ БХФЕОФЙЖЙЛБГЙЙ, РПДДЕТЦЙЧБЕНЩЕ ФПК ЙМЙ ЙОПК УЕФЕЧПК ПРЕТБГЙПООПК УЙУФЕНПК, УЕТЧЕТПН РТЙМПЦЕОЙК Й УЕТЧЕТПН ВБЪ ДБООЩИ.
чП ЧУЕИ ЬФЙИ УМХЮБСИ ВБЪПЧПК ЛПОУФТХЛГЙЕК РТПЧЕТЛЙ ВЕЪПРБУОПУФЙ СЧМСЕФУС ХЦЕ ЪОБЛПНЩК ЛПД, ЧЩЗМСДСЭЙК, Ч ПВЭЕН УМХЮБЕ, УМЕДХАЭЙН ПВТБЪПН:
6. пТЗБОЙЪБГЙС УПЕДЙОЕОЙС У ВБЪПК ДБООЩИ (Database connections)
ьФПФ ТБЪДЕМ ПУЧЕЭБЕФ ПУОПЧОЩЕ ЧПРТПУЩ, УЧСЪБООЩЕ У РПДУПЕДЙОЕОЙЕН Л ВБЪЕ ДБООЩИ.
дМС ДПУФХРБ Л ВБЪЕ ДБООЩИ ОЕПВИПДЙНП РПМХЮЙФШ ПВЯЕЛФ java.sql.Connection. уДЕМБФШ ЬФП НПЦОП, ПВТБФЙЧЫЙУШ Л ХТПЧОА ХРТБЧМЕОЙС JDBC РПУТЕДУФЧПН ЧЩЪПЧБ java.sql.DriverManager.getConnection. пУОПЧОЩН РБТБНЕФТПН ЬФПЗП ЧЩЪПЧБ СЧМСЕФУС УФТПЛБ URL (Uniform Resource Locator), ПРЙУЩЧБАЭБС ФБЛЙЕ ИБТБЛФЕТЙУФЙЛЙ УПЕДЙОЕОЙС, ЛБЛ УХВРТПФПЛПМ (ОБРТЙНЕТ, ODBC) Й ЙНС ВБЪЩ ДБООЩИ (НПЦЕФ ВЩФШ ЛПНРМЕЛУОЩН, ПРЙУЩЧБС УЕТЧЕТ, РХФШ Й ЖБКМ вд). рПУМЕ РПМХЮЕОЙС ПВЯЕЛФБ УПЕДЙОЕОЙС НПЦОП ОБЮБФШ ТБВПФХ ОЕРПУТЕДУФЧЕООП У ВБЪПК ДБООЩИ, ПВТБЭБСУШ Л НЕФПДБН java.sql.Connection ДМС УПЪДБОЙС ПВЯЕЛФПЧ java.sql.Statement, java.sql.PreparedStatement Й java.sql.CallableStatement.
нЕИБОЙЪН ЙНЕОПЧБОЙС ВБЪ ДБООЩИ Ч JDBC, ВБЪЙТХСУШ ОБ URL, ТЕЫБЕФ ФБЛЙЕ ЧПРТПУЩ, ЛБЛ БЧФПНБФЙЮЕУЛЙК ЧЩВПТ ДТБКЧЕТБ, УРПУПВОПЗП ПУХЭЕУФЧЙФШ ДПУФХР Л ДБООПК вд, ПРТЕДЕМЕОЙЕ ИБТБЛФЕТЙУФЙЛ УПЕДЙОЕОЙС Й Ф.Р.
ч ПВЭЕН УМХЮБЕ УРЕГЙЖЙЛБГЙС ТЕЛПНЕОДХЕФ УМЕДХАЭХА ЛПОУФТХЛГЙА URL:
ч ЛБЮЕУФЧЕ БФТЙВХФПЧ НПЗХФ ЧЩУФХРБФШ ФБЛЙЕ ИБТБЛФЕТЙУФЙЛЙ, ЛБЛ ТБЪНЕТ ЛЬЫБ (CacheSize), ЙНС РПМШЪПЧБФЕМС (UID), РБТПМШ (PWD) Й Ф.Р.
JDBC РТЕДХУНБФТЙЧБЕФ Й ЧПЪНПЦОПУФШ ДЙОБНЙЮЕУЛПЗП РПДУПЕДЙОЕОЙС Л ВБЪЕ ДБООЩИ. ч ЬФПН УМХЮБЕ ЧЩ НПЦЕФЕ РТПЙЪЧЕУФЙ ФБЛЙЕ ПРЕТБГЙЙ, ЛБЛ СЧОБС ЪБЗТХЪЛБ ДТБКЧЕТБ
Class.forName(«acme.db.Driver»);, ЕЗП ТЕЗЙУФТБГЙС ЮЕТЕЪ ЧЩЪПЧ DriverManager.registerDriver Й Ф. Р.
ч УМХЮБЕ У ODBC НПЦОП РТЙЧЕУФЙ УМЕДХАЭЙК РТЙНЕТ ДЙОБНЙЮЕУЛПЗП УПЕДЙОЕОЙС:
7. рЕТЕДБЮБ РБТБНЕФТПЧ Й РПМХЮЕОЙЕ ТЕЪХМШФБФПЧ (Passing parameters and receiving results)
еЭЕ ТБЪ РТЙЧЕДЕН РТЙНЕТ РПМХЮЕОЙС ДБООЩИ ЙЪ вд:
ч ДБООПН УМХЮБЕ ЙУРПМШЪПЧБМПУШ ПВТБЭЕОЙЕ Л УФПМВГБН ФБВМЙГЩ РП ЙИ ЙНЕОБН. рТЙЮЕН ТЕЗЙУФТ ЙНЕОЙ УФПМВГБ ОЕ ЙЗТБЕФ ТПМЙ (case insensitive).
JDBC РТЕДХУНБФТЙЧБЕФ Й ДПУФХР РП ОПНЕТХ УФПМВГБ:
рТЙ ЬФПН УФПМВГЩ ОХНЕТХАФУС ОБЮЙОБС У 1, Б ОЕ У ОХМС.
пЮЕЧЙДОП, ЮФП РТЙ ПРЙУБООЩИ РПДИПДБИ Ч ТБВПФЕ У ТЕЪХМШФЙТХАЭЙН НОПЦЕУФЧПН УФТПЛ ПУПВПЕ ЪОБЮЕОЙЕ РТЙПВТЕФБЕФ ЙУЮЕТРЩЧБАЭЕЕ ПРЙУБОЙЕ НЕФПДПЧ ResultSet.getXxxx. дЕКУФЧЙФЕМШОП, ЙОЖПТНБГЙС Ч ВБЪЕ ДБООЩИ ЮБУФП ИТБОЙФУС ОЕ ФПМШЛП Ч ЧЙДЕ УФПМВГПЧ РТПУФЕКЫЙИ ФЙРПЧ (ГЕМПЕ, ДМЙООПЕ ГЕМПЕ Й Ф. Р.), ОП Й Ч УРЕГЙЖЙЮЕУЛЙИ ДЧПЙЮОЩИ ЖПТНБФБИ. фБВМЙГБ 1 ПРЙУЩЧБЕФ ЧПЪНПЦОПУФШ РПМХЮЕОЙС ДБООЩИ ФПЗП ЙМЙ ЙОПЗП ФЙРБ У РПНПЭША УППФЧЕФУФЧХАЭЙИ НЕФПДПЧ getXxxx (ПУПВП ЧЩДЕМЕОЩ ФЕ СЮЕКЛЙ ПФПВТБЦЕОЙС «НЕФПД-ФЙР», ЙУРПМШЪПЧБОЙЕ ЛПФПТЩИ ТЕЛПНЕОДПЧБОП УФБОДБТФПН).
T | S | I | B | R | F | D | D | N | B | C | V | L | B | V | L | D | T | T | |
Y | M | N | I | E | L | O | E | U | I | H | A | O | I | A | O | A | I | I | |
I | A | T | G | A | O | U | C | M | T | A | R | N | N | R | N | T | M | M | |
N | L | E | I | L | A | B | I | E | R | C | G | A | B | G | E | E | E | ||
Y | L | G | N | T | L | M | R | H | V | R | I | V | S | ||||||
I | I | E | T | E | A | I | A | A | Y | N | A | T | |||||||
N | N | R | L | C | R | R | A | R | A | ||||||||||
T | T | C | R | B | M | ||||||||||||||
H | Y | I | P | ||||||||||||||||
A | N | ||||||||||||||||||
Y | |||||||||||||||||||
getByte | X | x | x | x | x | x | x | x | x | x | x | x | x | ||||||
getShort | x | X | x | x | x | x | x | x | x | x | x | x | x | ||||||
getInt | x | x | X | x | x | x | x | x | x | x | x | x | x | ||||||
getLong | x | x | x | X | x | x | x | x | x | x | x | x | x | ||||||
getFloat | x | x | x | x | X | x | x | x | x | x | x | x | x | ||||||
getDouble | x | x | x | x | x | X | X | x | x | x | x | x | |||||||
getNumcric | x | x | x | x | x | x | x | X | X | x | x | x | x | ||||||
getBoolean | x | x | x | x | x | x | x | x | x | X | x | x | x | ||||||
getString | x | x | x | x | x | x | x | x | x | x | X | X | x | x | x | x | x | x | x |
getBytes | X | X | x | ||||||||||||||||
getDate | x | x | x | X | x | ||||||||||||||
getTime | x | x | x | X | x | ||||||||||||||
getTimestamp | x | x | x | x | X | ||||||||||||||
getAsciiSteam | x | x | X | x | x | x | |||||||||||||
getUnicodeStream | x | x | X | x | x | x | |||||||||||||
getBinaryStream | x | x | X | x | x | x | |||||||||||||
getObject | x | x | x | x | x | x | x | x | x | x | x | x | x | x | x | x | x | x | x |
фБВМЙГБ 1.
йУРПМШЪПЧБОЙЕ НЕФПДПЧ ResultSet.getXxxx ДМС ПУОПЧОЩИ ФЙРПЧ SQL.
ч ТБУУНБФТЙЧБЕНПН ТБЪДЕМЕ УРЕГЙЖЙЛБГЙЙ JDBC ПРТЕДЕМСЕФУС Й ПВТБВПФЛБ ЪОБЮЕОЙС SQL «NULL». дМС ЕЗП ЙДЕОФЙЖЙЛБГЙЙ НПЦОП ЙУРПМШЪПЧБФШ НЕФПД ResultSet.wasNull. ч УМХЮБЕ ЮФЕОЙС «РХУФЩИ» ДБООЩИ У ЙУРПМШЪПЧБОЙЕН НЕФПДПЧ ResultSet.getXxxx ЧЩ РПМХЮЙФЕ:
зПЧПТС П РЕТЕДБЮЕ РБТБНЕФТПЧ, НЩ РПДТБЪХНЕЧБЕН РБТБНЕФТЩ IN (РЕТЕДБЧБЕНЩЕ) Й OUT (ЧПЪЧТБЭБЕНЩЕ).
ч ПВПЙИ УМХЮБСИ ФТЕВХЕФУС ХУФБОПЧЙФШ ЧЪБЙНОПЕ УППФЧЕФУФЧЙЕ ФЙРПЧ Java Й SQL. пФПВТБЦЕОЙА ФЙРПЧ РПУЧСЭЕО ТБЪДЕМ 8 УРЕГЙЖЙЛБГЙЙ. ч ДБООПН ЦЕ ЛПОФЕЛУФЕ ДМС ОБУ ЧБЦОЕЕ НЕФПДЩ ТБВПФЩ У РБТБНЕФТБНЙ ПВЯЕЛФПЧ, ПРЙУЩЧБАЭЙИ ЙОФЕТЖЕКУЩ PreparedStatement Й CallableStatement.
рТЙ ТБВПФЕ У РБТБНЕФТБНЙ, ФБЛЦЕ ЛБЛ Й РТЙ ЮФЕОЙЙ, ЧПЪНПЦОБ ТБВПФБ У «ВПМШЫЙНЙ» ДБООЩНЙ. дМС ЬФПЗП ЙУРПМШЪХАФУС ФБЛЙЕ НЕФПДЩ, ЛБЛ setBinaryStream Й Ф. Р.
лПОЕЮОП, НЩ УНПЗМЙ ПУФБОПЧЙФШУС МЙЫШ ОБ ПУОПЧОЩИ НПНЕОФБИ, УЧСЪБООЩИ У РПМХЮЕОЙЕН ТЕЪХМШФБФПЧ Й РЕТЕДБЮЕК РБТБНЕФТПЧ. вПМЕЕ РПМОХА ЙОЖПТНБГЙА ЧЩ УНПЦЕФЕ ОБКФЙ Ч УБНПК УРЕГЙЖЙЛБГЙЙ.
8. пФПВТБЦЕОЙЕ ФЙРПЧ ДБООЩИ SQL Ч Java (Mapping SQL data types into Java)
SQL type | Java Type |
CHAR | String |
VARCHAR | String |
LONGVARCHAR | String |
NUMERIC | java.sql.Numeric |
DECIMAL | java.sql.Numeric |
BIT | boolean |
TINYNT | byte |
SMALLINT | short |
INTEGER | int |
BIGINT | long |
REAL | float |
FLOAT | double |
DOUBLE | double |
BINARY | byte[ ] |
VARBINARY | byte[ ] |
LONGVARBINARY | byte[ ] |
DATE | java.sql.Date |
TIME | java.sql.Time |
TIMESTAMP | java.sql.Timestamp |
фБВМЙГБ 2.
пФПВТБЦЕОЙЕ ФЙРПЧ SQL Ч Java.
9. бУЙОИТПООЩЕ ЪБРТПУЩ, РПФПЛЙ Й ФТБОЪБЛГЙЙ (Asynchrony, Threading, and Transactions)
оПЧПЕ РПДЛМАЮЕОЙЕ Л ВБЪЕ ДБООЩИ ЙЪОБЮБМШОП УФБТФХЕФ Ч ТЕЦЙНЕ auto-commit. ьФП ЪОБЮЙФ, ЮФП ЛБЦДПЕ ЧЩТБЦЕОЙЕ ЧЩРПМОСЕФУС Ч ПФДЕМШОПК ФТБОЪБЛГЙЙ. рТЙ ОЕПВИПДЙНПУФЙ НПЦОП ПФНЕОЙФШ ЬФПФ ТЕЦЙН, ЧЩЪЧБЧ НЕФПД Connection.setAutoCommit У РБТБНЕФТПН false. рПУМЕ ЬФПЗП ОЕПВИПДЙНП Ч СЧОПН ЧЙДЕ ХЛБЪЩЧБФШ ПРЕТБГЙЙ ЪБЧЕТЫЕОЙС/ПФЛБФБ ФТБОЪБЛГЙЙ РПУТЕДУФЧПН ЧЩЪПЧПЧ Connection.commit / Connection.rollback. дМС ПРТЕДЕМЕОЙС Й ЛПОФТПМС ХТПЧОЕК ЙЪПМЙТПЧБООПУФЙ ФТБОЪБЛГЙК (ОБВПТ ЛПФПТЩИ НПЦЕФ ПФМЙЮБФШУС ДМС ТБЪОЩИ УЕТЧЕТПЧ ВБЪ ДБООЩИ) РТЕДМБЗБЕФУС ЙУРПМШЪПЧБФШ НЕФПДЩ java.sql.DatabaseMetaData Й java.sql.Connection.
10. лХТУПТЩ (Cursors)
JDBC РТЕДПУФБЧМСЕФ РТПУФЕКЫХА РПДДЕТЦЛХ ЛХТУПТПЧ. рТЙМПЦЕОЙС НПЗХФ ЙУРПМШЪПЧБФШ ResultSet.getCursorName() ДМС РПМХЮЕОЙС ЛХТУПТБ, БУУПГЙЙТПЧБООПЗП У ДБООЩН ОБВПТПН УФТПЛ. рПУМЕ ЬФПЗП У РПНПЭША ЛХТУПТБ НПЦОП ЧЩРПМОСФШ ЧЩВПТПЮОЩЕ (У РПЪЙГЙПОЙТПЧБОЙЕН) ПВОПЧМЕОЙС Й ХДБМЕОЙС УФТПЛ. пДОБЛП ОЕ ЧУЕ УЕТЧЕТЩ вд РПДДЕТЦЙЧБАФ ЬФЙ НЕИБОЙЪНЩ, РПЬФПНХ РЕТЕД ЙИ ЧЩЪПЧПН ОЕПВИПДЙНП ХДПУФПЧЕТЙФШУС Ч ФБЛПК РПДДЕТЦЛЕ У РПНПЭША НЕФПДПЧ DatabaseMetaData.supportPositionedUpdate Й DatabaseMetaData.supportPositionedDelete.
11, 12. тБУЫЙТЕОЙС SQL (11 SQL Extensions, 12 Variants and Extensions)
тСД УЕТЧЕТПЧ ВБЪ ДБООЩИ РПДДЕТЦЙЧБАФ ТБУЫЙТЕОЙС SQL, ЧЩИПДСЭЙЕ ЪБ ТБНЛЙ ЧИПДОПЗП ХТПЧОС УФБОДБТФБ SQL-2. дБООЩК ТБЪДЕМ УРЕГЙЖЙЛБГЙЙ ПРЙУЩЧБЕФ УМЕДХАЭЙЕ РПМПЦЕОЙС, ОЕПВИПДЙНЩЕ ДМС РПМХЮЕОЙС ДТБКЧЕТПН МПЗПФЙРБ JDBC-CompliantTM:
тБУЫЙТЕОЙС ФБЛЦЕ ЧЛМАЮБАФ РПДДЕТЦЛХ МЙФЕТБМПЧ, УРЕГЙЖЙГЙТХАЭЙИ ЧЕМЙЮЙОЩ ДБФЩ Й ЧТЕНЕОЙ, УЛБМСТОЩЕ ЖХОЛГЙЙ (Ч УППФЧЕФУФЧЙЙ У УЕНБОФЙЛПК, ПРТЕДЕМЕООПК X/Open CLI Й ODBC), escape-РПУМЕДПЧБФЕМШОПУФЙ ДМС ПРЕТБФПТБ LIKE Й УЙОФБЛУЙУ outer join.
тБЪДЕМ 12 ЧЛМАЮБЕФ ДПРПМОЙФЕМШОЩЕ УППВТБЦЕОЙС, ЛБУБАЭЙЕУС УРЕГЙЖЙЛЙ ЛПОЛТЕФОЩИ УЕТЧТПЧ, РП УХФЙ, ТБЪЯСУОСС ДПУФБФПЮОП «ОЕКФТБМШОХА» РПЪЙГЙА УРЕГЙЖЙЛБГЙЙ, Ч ПФОПЫЕОЙЙ ДПРПМОЙФЕМШОПК РПДДЕТЦЛЙ ДТБКЧЕТБНЙ ПУПВЕООПУФЕК УЕТЧЕТПЧ РП ПРТЕДЕМЕОЙА Й ТБВПФЕ У НЕФБДБООЩНЙ. пУОПЧОЩН НПНЕОФПН ЪДЕУШ СЧМСЕФУС РТЕДПУФБЧМЕОЙЕ ЧУЕК ОЕПВИПДЙНПК ЙОЖПТНБГЙЙ П ТБУЫЙТЕОЙСИ ЮЕТЕЪ ТЕБМЙЪБГЙА ЙОФЕТЖЕКУБ java.sql.DatabaseMetaData (ЙОЖПТНБГЙС П НЕФБДБООЩИ).
13. пРТЕДЕМЕОЙЕ ЙОФЕТЖЕКУПЧ JDBC (JDBC Interface Definitions)
уРЕГЙЖЙЛБГЙС ОЕ ЧЛМАЮБЕФ РПМОПЗП ПРЙУБОЙС JDBC API, БДТЕУХС ТБЪТБВПФЮЙЛПЧ Л ДПЛХНЕОФБГЙЙ РП РБЛЕФХ java.sql. пДОБЛП Ч ДБООПН ТБЪДЕМЕ ДБЕФУС ДЙБЗТБННБ УЧСЪЕК НЕЦДХ ОЙНЙ (ТЙУ. 6) РЕТЕЮЙУМСАФУС ЧУЕ ВБЪПЧЩЕ ЙОФЕТЖЕКУЩ JDBC:
йОФЕТЖЕКУЩ СДТБ JDBC:
14. дЙОБНЙЮЕУЛЙК ДПУФХР Л ВБЪБН ДБООЩИ (Dynamic Database Access)
бЧФПТБНЙ УРЕГЙЖЙЛБГЙЙ ПФНЕЮБЕФУС, ЮФП, ИПФС Ч ВПМШЫЙОУФЧЕ УМХЮБЕЧ ТБЪТБВПФЮЙЛЙ ЪБТБОЕЕ ЪОБАФ УИЕНХ ВБЪЩ ДБООЩИ (НЕФБДБООЩЕ), УХЭЕУФЧХЕФ ТСД ЪБДБЮ, ЛПЗДБ БОБМЙЪ вд РТПЙУИПДЙФ «ОБ МЕФХ». йНЕООП ДМС ФБЛПЗП БОБМЙЪБ Й РТЕДОБЪОБЮЕОЩ ХЛБЪБООЩЕ Ч РТЕДЩДХЭЕН ТБЪДЕМЕ ЙОФЕТЖЕКУЩ НЕФБДБООЩИ. ьФЙ ЙОФЕТЖЕКУЩ НПЗХФ ЙУРПМШЪПЧБФШУС Ч УПЮЕФБОЙЙ У ЙОФЕТЖЕКУБНЙ СДТБ JDBC ВЕЪ ЛБЛЙИ МЙВП ЛПОЖМЙЛФПЧ УП УФПТПОЩ НЕОЕДЦЕТБ ДТБКЧЕТПЧ ЙМЙ УБНЙИ ДТБКЧЕТПЧ. ч РТПДПМЦЕОЙЕ ТБЪДЕМБ 8 ПРТЕДЕМСЕФУС УППФЧЕФУФЧЙЕ SQL-ФЙРПЧ ПВЯЕЛФБН Java ДМС ЙУРПМШЪПЧБОЙС НЕФПДПЧ getObject Й setObject ДМС ЧЧПДБ/ЧЩЧПДБ ДБООЩИ. ч ЛБЮЕУФЧЕ РТЙНЕТБ ЙУРПМШЪПЧБОЙС ЬФЙИ НЕФПДПЧ НПЦОП РТЙЧЕУФЙ УМЕДХАЭЙК ЧБТЙБОФ ХЦЕ ЪОБЛПНПК РПУМЕДПЧБФЕМШОПУФЙ ЧЩЪПЧПЧ ОБ ЮФЕОЙЕ ДБООЩИ:
тЙУХОПЛ 6.
чБЦОЕКЫЙЕ УЧСЪЙ НЕЦДХ ЙОФЕТЖЕКУБНЙ JDBC.
рТЙМПЦЕОЙС
уРЕГЙЖЙЛБГЙС JDBC ЧЛМАЮБЕФ ЮЕФЩТЕ РТЙМПЦЕОЙС.
рТЙМПЦЕОЙЕ B РТЕДУФБЧМСЕФ УПВПК ОБВПТ РТЙНЕТПЧ ЙУРПМШЪПЧБОЙС JDBC (ЙУРПМШЪПЧБОЙЕ SELECT Й UPDATE).
ч рТЙМПЦЕОЙЙ C ДБАФУС ЛТБФЛЙЕ ЪБНЕЮБОЙС РП ТЕБМЙЪБГЙЙ JDBC ОБ РТЙНЕТЕ ТБВПФЩ У ТЕЪХМШФЙТХАЭЙН ОБВПТПН УФТПЛ ЮЕТЕЪ ЙОФЕТЖЕКУ ResultSetMetaData.
рТЙМПЦЕОЙЕ D УПДЕТЦЙФ УРЙУПЛ РПУМЕДОЙИ ЙЪНЕОЕОЙК Й ДПРПМОЕОЙК УФБОДБТФБ JDBC.
ч ЪБЛМАЮЕОЙЕ, С ЕЭЕ ТБЪ РПРТПУЙМ ВЩ ЮЙФБФЕМЕК ПВТБФЙФШ ЧОЙНБОЙЕ ОЕРПУТЕДУФЧЕООП ОБ УБНХ УРЕГЙЖЙЛБГЙА JDBC, ФБЛ ЛБЛ ОЙ ПДОБ УФБФШС, РПРХМСТЙЪЙТХАЭБС ФПФ ЙМЙ ЙОПК РПДИПД (ЙМЙ БТИЙФЕЛФХТХ), ОЕ ЪБНЕОЙФ ДПЛХНЕОФ, РПДЗПФПЧМЕООЩК БЧФПТБНЙ ЬФПЗП РПДИПДБ.
оБЙВПМЕЕ РПМОХА ЙОЖПТНБГЙА (УРЕГЙЖЙЛБГЙЙ, УМБКД-ЫПХ, РТЙНЕТЩ, УФБФШЙ Й Ф.Р.) РП JDBC Й ДТХЗЙН ФЕИОПМПЗЙСН Java ЮЙФБФЕМШ НПЦЕФ РПМХЮЙФШ ОБ Web-УЕТЧЕТЕ.