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 20570a0

Browse files
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)

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