Skip to content

Commit 20570a0

Browse files
authored
Update TicketDao.java
1 parent b47912e commit 20570a0

File tree

1 file changed

+29
-43
lines changed
  • DataAccessObjectLess/src/DAOLessonsOne/flight_repository_dao

1 file changed

+29
-43
lines changed

DataAccessObjectLess/src/DAOLessonsOne/flight_repository_dao/TicketDao.java

Lines changed: 29 additions & 43 deletions
Original file line numberDiff line numberDiff line change
@@ -26,41 +26,30 @@
2626
будет реализован как Singleton.
2727
*/
2828
public class TicketDao {
29-
// Переменная экземпляра объекта
30-
private static TicketDao INSTANCE;
31-
// Пустой приватный конструктор
32-
private TicketDao() {
33-
}
34-
/*
35-
Метод позволяющий инициализировать
36-
единственный объект класса TicketDao
37-
*/
29+
private static TicketDao INSTANCE; // Переменная экземпляра объекта
30+
private TicketDao() {} // Пустой приватный конструктор
31+
32+
/* Метод позволяющий инициализировать единственный объект класса TicketDao */
3833
public static TicketDao getInstance() {
3934
if (INSTANCE == null){
4035
INSTANCE = new TicketDao();
4136
}
4237
return INSTANCE;
4338
}
44-
/*
45-
SQL запрос на удаление одной записи из таблицы
46-
Ticket по ID в формате PrepareStatement
47-
*/
39+
40+
/* SQL запрос на удаление одной записи из таблицы Ticket по ID в формате PrepareStatement */
4841
private static final String DELETE_SQL = """
4942
DELETE FROM flight_repository.ticket
5043
WHERE id = ?
5144
""";
52-
/*
53-
SQL запрос на вставку одной записи в таблицу
54-
Ticket в формате PrepareStatement
55-
*/
45+
46+
/* SQL запрос на вставку одной записи в таблицу Ticket в формате PrepareStatement */
5647
private static final String SAVE_SQL = """
5748
INSERT INTO flight_repository.ticket (passenger_no, passenger_name, flight_id, seat_no, cost)
5849
VALUES (?, ?, ?, ?, ?);
5950
""";
60-
/*
61-
SQL запрос на изменение одной записи в таблице
62-
Ticket по ID в формате PrepareStatement
63-
*/
51+
52+
/* SQL запрос на изменение одной записи в таблице Ticket по ID в формате PrepareStatement */
6453
private static final String UPDATE_SQL = """
6554
UPDATE flight_repository.ticket
6655
SET passenger_no = ?,
@@ -70,6 +59,7 @@ public static TicketDao getInstance() {
7059
cost = ?
7160
WHERE id = ?
7261
""";
62+
7363
/* SQL запрос на получение всех записей из таблицы Ticket */
7464
private static final String FIND_ALL_SQL = """
7565
SELECT id,
@@ -80,13 +70,12 @@ public static TicketDao getInstance() {
8070
cost
8171
FROM flight_repository.ticket
8272
""";
83-
/*
84-
SQL запрос на получение данных одной записи в
85-
таблице Ticket по ID в формате PrepareStatement
86-
*/
73+
74+
/* SQL запрос на получение данных одной записи в таблице Ticket по ID в формате PrepareStatement */
8775
private static final String FIND_BY_ID_SQL = FIND_ALL_SQL + """
8876
WHERE id = ?
8977
""";
78+
9079
/*
9180
Метод для работы с FIND_ALL_SQL запросом. Перегруженный метод
9281
*.findAll(TicketFilter filter) приведен в самом низу данного
@@ -103,20 +92,17 @@ public List<Ticket> findAll() {
10392
ConnectionPoolManager.getConnectionFromPool();
10493
var preparedStatement =
10594
connection.prepareStatement(FIND_ALL_SQL)) {
106-
/* Получаем результат запроса, как коллекцию SET */
107-
var resultSet = preparedStatement.executeQuery();
108-
/* Создаем список для хранения билетов полученных по запросу */
109-
List<Ticket> tickets = new ArrayList<>();
95+
var resultSet = preparedStatement.executeQuery(); // Получаем результат запроса, как коллекцию SET
96+
List<Ticket> tickets = new ArrayList<>(); // Создаем список для хранения билетов полученных по запросу
11097
while (resultSet.next()) {
111-
/* Загружаем полученный список в коллекцию*/
112-
tickets.add(buildTicket(resultSet));
98+
tickets.add(buildTicket(resultSet)); // Загружаем полученный список в коллекцию
11399
}
114-
/* Возвращаем результат */
115-
return tickets;
100+
return tickets; // Возвращаем результат
116101
} catch (SQLException throwables) {
117102
throw new DaoException(throwables);
118103
}
119104
}
105+
120106
/*
121107
Метод для получения данных о билете по ID.
122108
Результат запроса неоднозначен, поскольку
@@ -166,6 +152,7 @@ public Optional<Ticket> findById(Long id) {
166152
throw new DaoException(throwables);
167153
}
168154
}
155+
169156
/* Метод для обновления сведений о билете */
170157
public void update(Ticket ticket) {
171158
/* Создаем соединение с базой и передаем UPDATE_SQL запрос */
@@ -186,6 +173,7 @@ public void update(Ticket ticket) {
186173
throw new DaoException(throwables);
187174
}
188175
}
176+
189177
/*
190178
Метод для сохранения данных нового билета в базе данных.
191179
Сам объект-билет передается в качестве параметра из которого
@@ -221,6 +209,7 @@ public Ticket save(Ticket ticket) {
221209
throw new DaoException(throwables);
222210
}
223211
}
212+
224213
/* Метод для удаления записи из базы данных по ID */
225214
public boolean delete(Long id) {
226215
/* Try-with-resources для объектов Connection и PrepareStatement */
@@ -236,6 +225,7 @@ public boolean delete(Long id) {
236225
throw new DaoException(throwables);
237226
}
238227
}
228+
239229
/*
240230
Метод извлекающий сведения о билете из объекта
241231
ResultSet и применяемый в методах *.findById()
@@ -251,6 +241,7 @@ private Ticket buildTicket(ResultSet resultSet) throws SQLException {
251241
resultSet.getBigDecimal("cost")
252242
);
253243
}
244+
254245
/* Перегруженный метод findAll с фильтрацией по входным параметрам */
255246
public List<Ticket> findAll(TicketFilter filter) {
256247
List<Object> parameters = new ArrayList<>(); // Список для хранения параметров заменяющих символ '?' в SQL запросе
@@ -392,18 +383,13 @@ public List<Ticket> findAll(TicketFilter filter) {
392383
for (int i = 0; i < parameters.size(); i++) {
393384
preparedStatement.setObject(i + 1, parameters.get(i));
394385
}
395-
/* Для наглядности выводим на экран получившийся SQl запрос */
396-
System.out.println(preparedStatement);
397-
/* Отправляем запрос в базу и получаем результирующую выборку */
398-
var resultSet = preparedStatement.executeQuery();
399-
/* Коллекция куда мы поместим результат выборки */
400-
List<Ticket> tickets = new ArrayList<>();
401-
/* Заполняем коллекцию */
386+
System.out.println(preparedStatement); // Для наглядности выводим на экран получившийся SQl запрос
387+
var resultSet = preparedStatement.executeQuery(); // Отправляем запрос в базу и получаем результирующую выборку
388+
List<Ticket> tickets = new ArrayList<>(); // Коллекция куда мы поместим результат выборки
402389
while (resultSet.next()) {
403-
tickets.add(buildTicket(resultSet));
390+
tickets.add(buildTicket(resultSet)); // Заполняем коллекцию
404391
}
405-
/* Возвращаем коллекцию */
406-
return tickets;
392+
return tickets; // Возвращаем коллекцию
407393
} catch (SQLException throwables) {
408394
throw new DaoException(throwables);
409395
}

0 commit comments

Comments
 (0)