Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commit 04a64e8

Browse files
Add the ConnectLessOne folders and files.
0 parents commit 04a64e8

File tree

5 files changed

+211
-0
lines changed

5 files changed

+211
-0
lines changed
Lines changed: 96 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,96 @@
1+
INSERT INTO airport (code, country, city)
2+
VALUES ('MNK', 'Беларусь', 'Минск'),
3+
('LDN', 'Англия', 'Лондон'),
4+
('MSK', 'Россия', 'Москва'),
5+
('BSL', 'Испания', 'Барселона');
6+
7+
SELECT * FROM airport;
8+
9+
INSERT INTO aircraft (model)
10+
VALUES ('Боинг 777-300'),
11+
('Боинг 737-300'),
12+
('Аэробус A320-200'),
13+
('Суперджет-100');
14+
15+
SELECT * FROM aircraft;
16+
17+
INSERT INTO seat (aircraft_id, seat_no)
18+
SELECT id, s.column1
19+
FROM aircraft
20+
CROSS JOIN (VALUES ('A1'), ('A2'), ('B1'), ('B2'), ('C1'), ('C2'), ('D1'), ('D2') ORDER BY 1) s;
21+
22+
SELECT * FROM seat;
23+
24+
INSERT INTO flight (flight_no, departure_date, departure_airport_code, arrival_date, arrival_airport_code, aircraft_id,
25+
status)
26+
VALUES
27+
('MN3002', '2020年06月14日T14:30', 'MNK', '2020年06月14日T18:07', 'LDN', 1, 'ARRIVED'),
28+
('MN3002', '2020年06月16日T09:15', 'LDN', '2020年06月16日T13:00', 'MNK', 1, 'ARRIVED'),
29+
('BC2801', '2020年07月28日T23:25', 'MNK', '2020年07月29日T02:43', 'LDN', 2, 'ARRIVED'),
30+
('BC2801', '2020年08月01日T11:00', 'LDN', '2020年08月01日T14:15', 'MNK', 2, 'DEPARTED'),
31+
('TR3103', '2020年05月03日T13:10', 'MSK', '2020年05月03日T18:38', 'BSL', 3, 'ARRIVED'),
32+
('TR3103', '2020年05月10日T07:15', 'BSL', '2020年05月10日T012:44', 'MSK', 3, 'CANCELLED'),
33+
('CV9827', '2020年09月09日T18:00', 'MNK', '2020年09月09日T19:15', 'MSK', 4, 'SCHEDULED'),
34+
('CV9827', '2020年09月19日T08:55', 'MSK', '2020年09月19日T10:05', 'MNK', 4, 'SCHEDULED'),
35+
('QS8712', '2020年12月18日T03:35', 'MNK', '2020年12月18日T06:46', 'LDN', 2, 'ARRIVED');
36+
37+
SELECT * FROM flight;
38+
39+
INSERT INTO ticket (passenger_no, passenger_name, flight_id, seat_no, cost)
40+
VALUES ('112233', 'Иван Иванов', 1, 'A1', 200),
41+
('23234A', 'Петр Петров', 1, 'B1', 180),
42+
('SS988D', 'Светлана Светикова', 1, 'B2', 175),
43+
('QYASDE', 'Андрей Андреев', 1, 'C2', 175),
44+
('POQ234', 'Иван Кожемякин', 1, 'D1', 160),
45+
('898123', 'Олег Рубцов', 1, 'A2', 198),
46+
('555321', 'Екатерина Петренко', 2, 'A1', 250),
47+
('QO23OO', 'Иван Розмаринов', 2, 'B2', 225),
48+
('9883IO', 'Иван Кожемякин', 2, 'C1', 217),
49+
('123UI2', 'Андрей Буйнов', 2, 'C2', 227),
50+
('SS988D', 'Светлана Светикова', 2, 'D2', 277),
51+
('EE2344', 'Дмитрий Трусцов', 3, 'А1', 300),
52+
('AS23PP', 'Максим Комсомольцев', 3, 'А2', 285),
53+
('322349', 'Эдуард Щеглов', 3, 'B1', 99),
54+
('DL123S', 'Игорь Беркутов', 3, 'B2', 199),
55+
('MVM111', 'Алексей Щербин', 3, 'C1', 299),
56+
('ZZZ111', 'Денис Колобков', 3, 'C2', 230),
57+
('234444', 'Иван Старовойтов', 3, 'D1', 180),
58+
('LLLL12', 'Людмила Старовойтова', 3, 'D2', 224),
59+
('RT34TR', 'Степан Дор', 4, 'A1', 129),
60+
('999666', 'Анастасия Шепелева', 4, 'A2', 152),
61+
('234444', 'Иван Старовойтов', 4, 'B1', 140),
62+
('LLLL12', 'Людмила Старовойтова', 4, 'B2', 140),
63+
('LLLL12', 'Роман Дронов', 4, 'D2', 109),
64+
('112233', 'Иван Иванов', 5, 'С2', 170),
65+
('NMNBV2', 'Лариса Тельникова', 5, 'С1', 185),
66+
('DSA586', 'Лариса Привольная', 5, 'A1', 204),
67+
('DSA583', 'Артур Мирный', 5, 'B1', 189),
68+
('DSA581', 'Евгений Кудрявцев', 6, 'A1', 204),
69+
('EE2344', 'Дмитрий Трусцов', 6, 'A2', 214),
70+
('AS23PP', 'Максим Комсомольцев', 6, 'B2', 176),
71+
('112233', 'Иван Иванов', 6, 'B1', 135),
72+
('309623', 'Татьяна Крот', 6, 'С1', 155),
73+
('319623', 'Юрий Дувинков', 6, 'D1', 125),
74+
('322349', 'Эдуард Щеглов', 7, 'A1', 69),
75+
('DIOPSL', 'Евгений Безфамильная', 7, 'A2', 58),
76+
('DIOPS1', 'Константин Швец', 7, 'D1', 65),
77+
('DIOPS2', 'Юлия Швец', 7, 'D2', 65),
78+
('1IOPS2', 'Ник Говриленко', 7, 'C2', 73),
79+
('999666', 'Анастасия Шепелева', 7, 'B1', 66),
80+
('23234A', 'Петр Петров', 7, 'C1', 80),
81+
('QYASDE', 'Андрей Андреев', 8, 'A1', 100),
82+
('1QAZD2', 'Лариса Потемнкина', 8, 'A2', 89),
83+
('5QAZD2', 'Карл Хмелев', 8, 'B2', 79),
84+
('2QAZD2', 'Жанна Хмелева', 8, 'С2', 77),
85+
('BMXND1', 'Светлана Хмурая', 8, 'В2', 94),
86+
('BMXND2', 'Кирилл Сарычев', 8, 'D1', 81),
87+
('SS988D', 'Светлана Светикова', 9, 'A2', 222),
88+
('SS978D', 'Андрей Желудь', 9, 'A1', 198),
89+
('SS968D', 'Дмитрий Воснецов', 9, 'B1', 243),
90+
('SS958D', 'Максим Гребцов', 9, 'С1', 251),
91+
('112233', 'Иван Иванов', 9, 'С2', 135),
92+
('NMNBV2', 'Лариса Тельникова', 9, 'B2', 217),
93+
('23234A', 'Петр Петров', 9, 'D1', 189),
94+
('123951', 'Полина Зверева', 9, 'D2', 234);
95+
96+
SELECT * FROM ticket;

‎ConnectLessOne/base/make_base.sql‎

Lines changed: 49 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,49 @@
1+
CREATE SCHEMA flight_repository;
2+
3+
CREATE TABLE airport
4+
(
5+
code CHAR(3) PRIMARY KEY ,
6+
country VARCHAR(256) NOT NULL ,
7+
city VARCHAR(128) NOT NULL
8+
);
9+
10+
CREATE TABLE aircraft
11+
(
12+
id SERIAL PRIMARY KEY ,
13+
model VARCHAR(128) NOT NULL
14+
);
15+
16+
CREATE TABLE seat
17+
(
18+
aircraft_id INT REFERENCES aircraft (id),
19+
seat_no VARCHAR(4) NOT NULL ,
20+
PRIMARY KEY (aircraft_id, seat_no)
21+
);
22+
23+
CREATE TABLE flight
24+
(
25+
id BIGSERIAL PRIMARY KEY ,
26+
flight_no VARCHAR(16) NOT NULL ,
27+
departure_date TIMESTAMP NOT NULL ,
28+
departure_airport_code CHAR(3) REFERENCES airport(code) NOT NULL ,
29+
arrival_date TIMESTAMP NOT NULL ,
30+
arrival_airport_code CHAR(3) REFERENCES airport(code) NOT NULL ,
31+
aircraft_id INT REFERENCES aircraft (id) NOT NULL ,
32+
status VARCHAR(32) NOT NULL
33+
);
34+
35+
CREATE TABLE ticket
36+
(
37+
id BIGSERIAL PRIMARY KEY ,
38+
passenger_no VARCHAR(32) NOT NULL ,
39+
passenger_name VARCHAR(128) NOT NULL ,
40+
flight_id BIGINT REFERENCES flight (id) NOT NULL ,
41+
seat_no VARCHAR(4) NOT NULL,
42+
cost NUMERIC(8, 2) NOT NULL
43+
);
44+
45+
CREATE TABLE test_for_delete
46+
(
47+
id SERIAL PRIMARY KEY ,
48+
not_null_info VARCHAR(128) NOT NULL
49+
);
1 MB
Binary file not shown.
Lines changed: 59 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,59 @@
1+
/*
2+
Пример соединения с базой данных, когда все
3+
настройки находятся в одном файле. В данном
4+
случае это PostgreSQL.
5+
*/
6+
import java.sql.Connection;
7+
import java.sql.DriverManager;
8+
import java.sql.SQLException;
9+
10+
public class JDBCLessOneApp {
11+
// Логин для подключения к базе данных
12+
private static String LOGIN = "postgres";
13+
// Пароль для подключения к базе данных
14+
private static String PASS = "testadmin";
15+
// Адрес для подключения к базе данных, обычно можно взять из настроек соединения IDE и базы.
16+
private static String BASEURL = "jdbc:postgresql://localhost:5432/flight_repository";
17+
18+
public static void main(String[] args) {
19+
/*
20+
DriverManager.getConnection(DB_URL, DB_USER_NAME, DB_USER_PASSWORD) – устанавливаем
21+
соединение с СУБД. По переданному адресу, JDBC сама определит тип и местоположение
22+
нашей СУБД и вернёт Connection, который мы можем использовать для связи с БД.
23+
*/
24+
try (Connection connection = DriverManager.getConnection(BASEURL,LOGIN,PASS)) {
25+
/*
26+
В стандарте SQL описывается четыре уровня изоляции транзакций:
27+
— Read uncommited (Чтение незафиксированных данных),
28+
- Read committed (Чтение зафиксированных данных),
29+
- Repeatable read (Повторяемое чтение),
30+
- Serializable (Сериализуемость).
31+
32+
*** 4 свойства транзакций ***
33+
34+
Основные требования к транзакционной системе:
35+
- Atomicity (атомарность) — выражается в том, что транзакция должна быть
36+
выполнена в целом или не выполнена вовсе.
37+
- Consistency (согласованность) — гарантирует, что по мере выполнения транзакций,
38+
данные переходят из одного согласованного
39+
состояния в другое, то есть транзакция не может
40+
разрушить взаимной согласованности данных.
41+
- Isolation (изолированность) — локализация пользовательских процессов означает,
42+
что конкурирующие за доступ к БД транзакции
43+
физически обрабатываются последовательно,
44+
изолированно друг от друга, но для пользователей
45+
это выглядит, как будто они выполняются параллельно.
46+
- Durability (долговечность) — устойчивость к ошибкам — если транзакция завершена
47+
успешно, то те изменения в данных, которые были ею
48+
произведены, не могут быть потеряны ни при каких
49+
обстоятельствах.
50+
51+
В данной ситуации мы смотрим уровень изоляции транзакций нашей базы.
52+
*/
53+
System.out.println(connection.getTransactionIsolation());
54+
System.out.println(connection.getCatalog());
55+
} catch (SQLException e) {
56+
throw new RuntimeException(e);
57+
}
58+
}
59+
}

‎ConnectLessOne/src/ReadMe.txt‎

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
Пример простого соединения с базой данных.
2+
3+
В папке base лежат файлы *.sql скриптов (запросов)
4+
для создания и заполнения тестовой базы данных.
5+
6+
В папке lib лежит драйвер для работы с базой данных
7+
PostgreSQL.

0 commit comments

Comments
(0)

AltStyle によって変換されたページ (->オリジナル) /