- Java class with database connection
- 2) Create the connection object
- Syntax of getConnection() method
- Example to establish connection with the Oracle database
- 3) Create the Statement object
- Syntax of createStatement() method
- Example to create the statement object
- 4) Execute the query
- Syntax of executeQuery() method
- Example to execute query
- 5) Close the connection object
- Syntax of close() method
- Example to close connection
- Note: Since Java 7, JDBC has ability to use try-with-resources statement to automatically close resources of type Connection, ResultSet, and Statement.
- Feedback
- Help Others, Please Share
- Learn Latest Tutorials
- Preparation
- Trending Technologies
- B.Tech / MCA
- Javatpoint Services
- Training For College Campus
- Часть 1. Введение в SQL
- Виды СУБД
- SQL
- JDBC
- Первая программа
- Разбор кода
- Блок констант:
- Обработка ошибок:
- Логика работы:
Java class with database connection
2) Create the connection object
The getConnection() method of DriverManager class is used to establish connection with the database. |
Syntax of getConnection() method
Example to establish connection with the Oracle database
3) Create the Statement object
The createStatement() method of Connection interface is used to create statement. The object of statement is responsible to execute queries with the database. |
Syntax of createStatement() method
Example to create the statement object
4) Execute the query
The executeQuery() method of Statement interface is used to execute queries to the database. This method returns the object of ResultSet that can be used to get all the records of a table. |
Syntax of executeQuery() method
Example to execute query
5) Close the connection object
By closing connection object statement and ResultSet will be closed automatically. The close() method of Connection interface is used to close the connection. |
Syntax of close() method
Example to close connection
Note: Since Java 7, JDBC has ability to use try-with-resources statement to automatically close resources of type Connection, ResultSet, and Statement.
It avoids explicit connection closing step.
For Videos Join Our Youtube Channel: Join Now
Feedback
Help Others, Please Share
Learn Latest Tutorials
Preparation
Trending Technologies
B.Tech / MCA
Javatpoint Services
JavaTpoint offers too many high quality services. Mail us on h[email protected], to get more information about given services.
- Website Designing
- Website Development
- Java Development
- PHP Development
- WordPress
- Graphic Designing
- Logo
- Digital Marketing
- On Page and Off Page SEO
- PPC
- Content Development
- Corporate Training
- Classroom and Online Training
- Data Entry
Training For College Campus
JavaTpoint offers college campus training on Core Java, Advance Java, .Net, Android, Hadoop, PHP, Web Technology and Python. Please mail your requirement at [email protected].
Duration: 1 week to 2 week
Like/Subscribe us for latest updates or newsletter
Часть 1. Введение в SQL
Эта статья открывает небольшой цикл, посвященный азам взаимодействия с базами данных (БД) в Java и введению в SQL. Многие программы заняты обработкой и модификацией информации, её поддержкой в актуальном состоянии. Поскольку данные — весьма важная часть логики программ, то под них зачастую выделяют отдельное хранилище. Информация в нём структурирована и подчинена специальным правилам, чтобы обеспечить правильность обработки и хранения. Доступ к данным и их изменение осуществляется с помощью специального языка запросов — SQL (Structured Query Language).
Система управления базами данных — это ПО, которое обеспечивает взаимодействие разных внешних программ с данными и дополнительные службы (журналирование, восстановление, резервное копирование и тому подобное), в том числе посредством SQL. То есть программная прослойка между данными и внешними программами с ними работающими. В этой части ответим на вопросы что такое SQL, что такое SQL сервер и создадим первую программу для взаимодействия с СУБД.
Виды СУБД
- Иерархические. Данные организованы в виде древовидной структуры. Пример — файловая система, которая начинается с корня диска и далее прирастает ветвями файлов разных типов и папок разной степени вложенности.
- Сетевые. Видоизменение иерархической, у каждого узла может быть больше одного родителя.
- Объектно-ориентированные. Данные организованы в виде классов/объектов c их атрибутами и принципами взаимодействия согласно ООП.
- Реляционные. Данные этого вида СУБД организованы в таблицах. Таблицы могут быть связаны друг с другом, информация в них структурирована.
SQL
- Что такое SQL-Сервер и как он работает? Взаимодействие с СУБД происходит по клиент-серверному принципу. Некая внешняя программа посылает запрос в виде операторов и команд на языке SQL, СУБД его обрабатывает и высылает ответ. Для упрощения примем, что SQL Сервер = СУБД.
- Data Definition Language (DDL) – определения данных. Создание структуры БД и её объектов;
- Data Manipulation Language(DML) – собственно взаимодействие с данными: вставка, удаление, изменение и чтение;
- Transaction Control Language (TCL) – управление транзакциями;
- Data Control Language(DCL) – управление правами доступа к данным и структурам БД.
JDBC
В 80-е годы прошлого века персональные компьютеры типа PC XT/AT завоевали рынок. Во многом это произошло благодаря модульности их конструкции. Это означает, что пользователь мог довольно просто менять ту или иную составную часть своего компьютера (процессор, видеокарту, диски и тому подобное). Это замечательное свойство сохранилось и поныне: мы меняем видеокарту и обновляем драйвер (иногда он и вовсе обновляется сам, в автоматическом режиме). Чаще всего при таких манипуляциях ничего плохого не происходит, и существующие программы продолжат работать с обновившейся системой без переустановки. Аналогично и для работы в Java с СУБД. Для стандартизации работы с SQL-серверами взаимодействие с ней можно выполнять через единую точку — JDBC (Java DataBase Connectivity). Она представляет собой реализацию пакета java.sql для работы с СУБД. Производители всех популярных SQL-серверов выпускают для них драйверы JDBC. Рассмотрим схему ниже. Приложение использует экземпляры классов из java.sql. Затем мы передаем необходимые команды для получения/модификации данных. Далее java.sql через jdbc-драйвер взаимодействует с СУБД и возвращает нам готовый результат. Для перехода на СУБД другого производителя часто достаточно сменить JDBC и выполнить базовые настройки. Остальные части программы при этом не меняются.
Первая программа
Приступим к практической части. Создадим Java-проект с помощью IDE JetBrains IntelliJ IDEA. Заметим, что редакция Ultimate Edition содержит в своём составе замечательный инструмент для работы с SQL и БД — Data Grip. Однако она платная для большинства пользователей. Так что нам для учебных целей остается использовать общедоступную IntelliJ IDEA Community Edition. Итак:
- Запускаем IDE и создадём новый проект:
- Выбираем Java-проект, указываем версию SDK (в примере JDK8, однако это не критично):
- На следующем шаге выбираем в качестве типа консольное приложение:
- Указываем имя проекта, пакет и его размещение на диске (я создал специально для этого отдельную директорию):
- Отложим на минуту IDE и загрузим c www.h2database.com необходимый JDBC-файл для работы c СУБД H2 (download platform independent ZIP):
- Заходим внутрь скачанного файла (нас интересует jar-файл по пути h2\bin, который нам далее понадобится, скопируем его):
- Возвращаемся в IDE и создаём в корне проекта директории: db, где будут размещены файлы с данными СУБД; lib – здесь JAR-библиотека JDBC:
- Переносим в директорию lib jar-файл из шага 6, и добавим его в проект как библиотеку:
- Переименуем java-файл в src/sql/demo на StockExchange.java (если забыли, мы собираемся эмулировать простую «биржу»), поменяем его содержимое и запустим:
Теперь мы умеем подключаться к СУБД и отключаться от неё. Каждый шаг отражается в консоли. При первом подключении к СУБД создаётся файл базы данных stockExchange.mv.db.
Разбор кода
package sql.demo; import java.sql.*; public class StockExchangeDB < // Блок объявления констант public static final String DB_URL = "jdbc:h2:/c:/JavaPrj/SQLDemo/db/stockExchange"; public static final String DB_Driver = "org.h2.Driver"; public static void main(String[] args) < try < Class.forName(DB_Driver); //Проверяем наличие JDBC драйвера для работы с БД Connection connection = DriverManager.getConnection(DB_URL);//соединениесБД System.out.println("Соединение с СУБД выполнено."); connection.close(); // отключение от БД System.out.println("Отключение от СУБД выполнено."); >catch (ClassNotFoundException e) < e.printStackTrace(); // обработка ошибки Class.forName System.out.println("JDBC драйвер для СУБД не найден!"); >catch (SQLException e) < e.printStackTrace(); // обработка ошибок DriverManager.getConnection System.out.println("Ошибка SQL !"); >> >
Блок констант:
- DB_Driver: Здесь мы определили имя драйвера, которое можно узнать, например, кликнув мышкой на подключенную библиотеку и развернув её структуру в директории lib текущего проекта.
- DB_URL: Адрес нашей базы данных. Состоит из данных, разделённых двоеточием:
- Протокол=jdbc
- Вендор (производитель/наименование) СУБД=h2
- Расположение СУБД, в нашем случае путь до файла (c:/JavaPrj/SQLDemo/db/stockExchange). Для сетевых СУБД тут дополнительно указываются имена или IP адреса удалённых серверов, TCP/UDP номера портов и так далее.
Обработка ошибок:
Вызов методов нашего кода может вернуть ошибки, на которые следует обратить внимание. На данном этапе мы просто информируем о них в консоли. Заметим, что ошибки при работе с СУБД — это чаще всего SQLException.
Логика работы:
- Class.forName(DB_Driver) – убеждаемся в наличии соответствующего JDBC-драйвера (который мы ранее загрузили и установили).
- DriverManager.getConnection(DB_URL) – устанавливаем соединение СУБД. По переданному адресу, JDBC сама определит тип и местоположение нашей СУБД и вернёт Connection, который мы можем использовать для связи с БД.
- connection.close() – закрываем соединение с СУБД и завершаем работу с программой.