Вы находитесь на странице: 1из 12

Базы данных.

JDBC
MySQL и SQLite

Борисов Андрей
andriy.borysov@ukr.net
Контрольная работа
1. Приведите короткий фрагмент, демонстрирующий dead lock.
2. Перечислите и кратко опишите методы из класса Future.

2
База данных. Кратко
Организованный набор данных со своими характеристиками и связями,
применимый для какой-либо прикладной области. Базы данные содержат схемы,
таблицы, хранимые процедуры и другие объекты. Организованы согласно
моделям данных. Существуют реляционные и нереляционные модели данных.

Система управления базами данных (СУБД) - программный комплекс, который


обеспечивает создание, управление, хранение, контроль и использование баз
данных.

Известные СУБД: MySQL, PostgreSQL, SQLite, MSSQL, MongoDB, Realm


3
Программный интерфейс СУБД
Механизмы доступа:
● SQL (plain, raw)
○ JDBC
○ ADO.NET
● ORM (object-relational mapping)
○ Hibernate (Java)
○ Entity Framework (.NET)
○ Core Data (iOS)
○ Realm (cross-platform, СУБД)

4
JDBC. Установка драйвера
● MySQL
Добавить зависимости в файл build.gradle в секцию dependencies:
implementation 'mysql:mysql-connector-java:8.0.16'

● SQLite
Добавить зависимости в файл build.gradle в секцию dependencies:
implementation 'org.xerial:sqlite-jdbc:3.27.2.1'

5
JDBC. Соединение
● MySQL
try (Connection connection = DriverManager.getConnection(
"jdbc:mysql://localhost/books_and_authors?serverTimezone=Europe/Kiev",
"root", "password")) {
// ... work with connection
}

● SQLite
try (Connection connection = DriverManager.getConnection("jdbc:sqlite:sample.db")) {
// ... work with connection
}

6
JDBC. Создание таблицы
Statement statement = connection.createStatement();

statement.executeUpdate("CREATE TABLE person (id INTEGER, name VARCHAR(100))");

7
JDBC. Выполнение запросов
statement.executeUpdate("INSERT INTO person VALUES(1, 'adam')");

statement.executeUpdate("INSERT INTO person VALUES(2, 'eva')");

ResultSet cursor = statement.executeQuery("SELECT * FROM person");

while (cursor.next()) {

System.out.println("name = " + cursor.getString("name"));

System.out.println("id = " + cursor.getInt("id"));

8
Практика
1. Реализовать программное консольное меню, позволяющее выполнять разные действия
под номерами 1-9 или буквами a-z.
2. Реализовать элементы меню по созданию и удалению таблицы со студентами. Студент
имеет минимум 4 поля.
3. Реализовать элемент меню по добавлению нового студента в базу данных из введенных
пользователем данных с консоли.
4. Реализовать элемент меню по выводу всех студентов, отсортированных по имени от А
до Я.
5. Реализовать элемент меню по поиску студентов по тексту, введенному пользователем, и
выводу найденных упорядоченными по имени от А до Я.

9
Полезные ссылки
● TutorialsPoint. JDBC Tutorial
● GitHub. SQLite JDBC Driver

10
Домашнее задание

Хорстман К. Библиотека профессионала. Java.


Том 2. Расширенные средства программирования. 10-е издание.
● Глава 5. Работа с базами данных

● Теорія множин / Wikipedia


● JOIN (SQL) / Wikipedia

11
Спасибо за внимание

Вопросы?
12