Что такое jdbc java

Простой пример JDBC для начинающих

Здравствуйте! В этой статье я напишу простой пример соединения с базами данных на Java.Эта статья предназначена новичкам.Здесь я опишу каждую строчку объясню что зачем.

Но для начала немного теории.

JDBC (Java DataBase Connectivity — соединение с базами данных на Java) предназначен для взаимодействия Java-приложения с различными системами управления базами данных (СУБД). Всё движение в JDBC основано на драйверах которые указываются специально описанным URL.

А теперь практика.

Для начала создаём maven проект и в pom.xml помещаем зависимость для соединения с СУБД (В моём случае СУБД будет выступать MySQL):

Должно получится так:

Что такое jdbc java. Смотреть фото Что такое jdbc java. Смотреть картинку Что такое jdbc java. Картинка про Что такое jdbc java. Фото Что такое jdbc java

Дальше подключаемся к базе данных нужной вам(я пользуюсь IDEA Ultimate по этому я подключаюсь именно так).

Что такое jdbc java. Смотреть фото Что такое jdbc java. Смотреть картинку Что такое jdbc java. Картинка про Что такое jdbc java. Фото Что такое jdbc java

Дальше заполняем Database, User и Password.Обязательно проверяем соединение.

Что такое jdbc java. Смотреть фото Что такое jdbc java. Смотреть картинку Что такое jdbc java. Картинка про Что такое jdbc java. Фото Что такое jdbc java

Дальше мы создаём сам класс.

Что такое jdbc java. Смотреть фото Что такое jdbc java. Смотреть картинку Что такое jdbc java. Картинка про Что такое jdbc java. Фото Что такое jdbc java

А теперь разберём его построчно:

В начале мы создаём три переменные url,username и password. Образец указания url:

Что такое jdbc java. Смотреть фото Что такое jdbc java. Смотреть картинку Что такое jdbc java. Картинка про Что такое jdbc java. Фото Что такое jdbc java

Username по умолчанию root.Password вы должны знать сами.

После с помощью строчки Class.forName(«com.mysql.jdbc.Driver») регестрируем драйвера. Дальше устанавливаем соединение с помощью DriverManager.getConnection (ваш url, username, password).

После с помощью connection (соединения) создаём простой запрос Statement методом createStatement().

Дальше создаём экземпляр класса ResultSet и формируем запрос через statement методом executeQuery (запрос).

Дальше мы заставляем пробежаться resultSet по всей базе данных и вывести то что нам нужно. Так с помощью объекта resultSet и его методов (getString,getInt и т.д. в зависимости от типа переменных в колонке) мы выводим.Так как мой запрос был для того что бы вывести всё, мы можем вывести любую колонку.

После закрываем resultSet,statement и connection (именно в такой последовательности). В процессе он будет показывать ошибки так как будет запрашивать обработку исключений в catch.Так что пишите catch заранее.

Теперь когда практика есть на неё можно наложить более глубокую теорию.Тема правда очень большая, желаю удачи в её изучении.

Источник

Национальная библиотека им. Н. Э. Баумана
Bauman National Library

Персональные инструменты

JDBC (Java DataBase Connectivity)

JDBC

Разработчики:Oracle Corporation
Выпущена:5 December 2013 года ; 8 years ago ( 2013-12-05 )
Постоянный выпуск:JDBC 4.2
Тип ПО:Data Access API
Веб-сайтJDBC

Содержание

Архитектура

Что такое jdbc java. Смотреть фото Что такое jdbc java. Смотреть картинку Что такое jdbc java. Картинка про Что такое jdbc java. Фото Что такое jdbc java

Рисунок 1 – Архитектура Java Applet/Application

Что такое jdbc java. Смотреть фото Что такое jdbc java. Смотреть картинку Что такое jdbc java. Картинка про Что такое jdbc java. Фото Что такое jdbc java

Рисунок 2 – Архитектура Java Application

Левая сторона. Тип 1: Java драйвер для прямого подключения к БД
Этот тип драйвера преобразует запросы JDBC в сетевой протокол, используемый непосредственно СУБД, позволяющая осуществлять прямой запрос с компьютера клиента на сервер СУБД и предоставляющая практическое решение для доступа в интрасеть.
Правая сторона. Тип 2: Java драйвер для промежуточного БД
Данный тип переводит запросы JDBC в протокол поставщика промежуточного ПО, который далее преобразуется в протокол СУБД сервером промежуточного ПО. Промежуточное ПО обеспечивает подключение ко многим различным БД.

На рисунке 2 показано подключение JDBC с использованием драйверов ODBC и существующих клиентских библиотек БД.

Левая сторона. Тип 3: JDBC-ODBC мост с драйверами ODBC
Эта комбинация обеспечивает доступ JDBC через драйвера ODBC. Бинарный код ODBC должен быть загружен на каждом компьютере клиента, который использует мост JDBC-ODBC.
Правая сторона. Тип 4: Встроенный API драйвер с частичной технологией Java
Этот тип драйвера преобразует запросы JDBC в запросы клиентского API для Oracle, Sybase, Informix, DB2 или других СУБД.

Преимущества и недостатки

Преимуществами JDBC считают:

Недостатками JDBC являются:

Сравнение JDBC и ODBC

JDBCODBC
АрхитектураБазовая архитектура поддерживает как двухуровненвые, так и трехуровневые модели обработки БД, но в основном состоит из двух уровней архитектуры: JDBC API и JDBC Driver APIАрхитектура ODBC в основном состоит из 4 компонентов: драйвер, диспетчер драйверов, API и источник данных
СложностьВ случае с JDBC кодирование является начальным этапом комплексного программирования запросовОбрабатывает различные сложные ситуации и запросы для получения правильных выходных данных машинного уровня. Так что это продвинутая версия кодирования и других разных подходов.
Язык программированияJavaC, C++, Java и т.д.
ПлатформаВыполняется на любых платформахВыполняется только на Windows
Режим работыРаботает на языке Java и может быть скомпилирован непосредственно во время выполненияРеализован на Visual Basic, поэтому код необходимо интерпретировать, а затем выполнить
БезопасностьПользователи не имеют доступа к основным настройкам системы, следовательно, нарушения и дыры в безопасности можно быстро исправитьИнтерактивный сервер пользователя, подвержен ошибкам пользователя
ПоддержкаПоддержка сообщества для JDBC и его пользователейПредоставляют большой спектр сообщества и платную поддержку. Обычно все версии ODBC используют для обеспечения долгосрочной поддержки клиентов

Примеры

JDBC для MySQL

Данный пример использует свободный драйвер JDBC для MySQL, который легко устанавливается в большинстве дистрибутивов Linux через стандартные репозитории.

JDBC для Microsoft SQL Server

Данный пример использует jTDS, свободный драйвер JDBC для Microsoft SQL Server и Sybase ASE SQL-Server. Подключиться к этой и другим СУБД можно и встроенными средствами с помощью драйвера JDBC для ODBC, но ценой замедления работы.

Источник

Руководство по JDBC. Введение.

Что такое JDBC?

Java Database Connectivity – это стандартный API для независимого соединения языка программирования Java с различными базами данных (далее – БД).

JDBC решает следующие задачи:

Если говорить в целом, то JDBC – это библиотека, которая обеспечивает целый набор интерфейсов для доступа к различным БД.

Для доступа к каждой конкретной БД необходим специальный JDBC – драйвер, который является адаптером Java – приложения к БД.

Строение JDBC

JDBC поддерживает как 2-звенную, так и 3-звенную модель работы с БД, но в общем виде, JDBC состоит из двух слоёв.

JDBC API использует менеджер драйверов и специальные драйверы БД для обеспечения подключения к различным базам данных.

JBDC Manager проверяет соответствие драйвера и конкретной БД. Он поддерживает возможность использования нескольких драйверов одновременно для одновременной работы с несколькими видами БД.

Схематично, JDBC можно представить в таком виде:

Что такое jdbc java. Смотреть фото Что такое jdbc java. Смотреть картинку Что такое jdbc java. Картинка про Что такое jdbc java. Фото Что такое jdbc java

Рассмотрим элементы JDBC по отдельности.

Элементы JDBC

JDBC API состоит из следующих элементов:

Пакеты JDBC

Ключевыми пакетами JDBC являются java.sql и javax.sql. На момент написания этого руководства, текущей версией JDBC является JDBC 4.0.
С отличиями этой спецификации от предыдущих вы можете ознакомиться в JDBC Specification.

Вот основные изменения:

В этом уроке мы ознакомились с основами JDBC и рассмотрели его архитектуру.

В следующем уроке мы рассмотрим базовый синтаксис языка SQL.

Источник

Что такое jdbc java

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 TypeJava Object Type
CHARString
VARCHARString
LONGVARCHARString
NUMERICjava.math.BigDecimal
DECIMALjava.math.BigDecimal
BITBoolean
TINYINTInteger
SMALLINTInteger
INTEGERInteger
BIGINTLong
REALFloat
FLOATDouble
DOUBLEDouble
BINARYbyte[]
VARBINARYbyte[]
LONGVARBINARYbyte[]
DATEjava.sql.Date
TIMEjava.sql.Time
TIMESTAMPjava.sql.Timestamp
CLOBClob
BLOBBlob
ARRAYArray
STRUCTStruct
REFRef
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! Предварительно необходимо закрыть все запросы созданные этим соединением.

Источник

Lesson: JDBC Introduction

The JDBC API is a Java API that can access any kind of tabular data, especially data stored in a Relational Database.

JDBC helps you to write Java applications that manage these three programming activities:

The following simple code fragment gives a simple example of these three steps:

This short code fragment instantiates a DriverManager object to connect to a database driver and log into the database, instantiates a Statement object that carries your SQL language query to the database; instantiates a ResultSet object that retrieves the results of your query, and executes a simple while loop, which retrieves and displays those results. It’s that simple.

JDBC Product Components

JDBC includes four components:

The JDBC API — The JDBC™ API provides programmatic access to relational data from the Java™ programming language. Using the JDBC API, applications can execute SQL statements, retrieve results, and propagate changes back to an underlying data source. The JDBC API can also interact with multiple data sources in a distributed, heterogeneous environment.

The JDBC API is part of the Java platform, which includes the Java™ Standard Edition (Java™ SE ) and the Java™ Enterprise Edition (Java™ EE). The JDBC 4.0 API is divided into two packages: java.sql and javax.sql. Both packages are included in the Java SE and Java EE platforms.

JDBC Driver Manager — The JDBC DriverManager class defines objects which can connect Java applications to a JDBC driver. DriverManager has traditionally been the backbone of the JDBC architecture. It is quite small and simple.

The Standard Extension packages javax.naming and javax.sql let you use a DataSource object registered with a Java Naming and Directory Interface™ (JNDI) naming service to establish a connection with a data source. You can use either connecting mechanism, but using a DataSource object is recommended whenever possible.

JDBC Test Suite — The JDBC driver test suite helps you to determine that JDBC drivers will run your program. These tests are not comprehensive or exhaustive, but they do exercise many of the important features in the JDBC API.

JDBC-ODBC Bridge — The Java Software bridge provides JDBC access via ODBC drivers. Note that you need to load ODBC binary code onto each client machine that uses this driver. As a result, the ODBC driver is most appropriate on a corporate network where client installations are not a major problem, or for application server code written in Java in a three-tier architecture.

This Trail uses the first two of these four JDBC components to connect to a database and then build a java program that uses SQL commands to communicate with a test Relational Database. The last two components are used in specialized environments to test web applications, or to communicate with ODBC-aware DBMSs.

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *