Как реализовать один ко многим с помощью jdbc - PullRequest
0 голосов
/ 10 июля 2019

Я пытаюсь написать программу для управления некоторыми клиентами. У каждого клиента есть резервирование, и у каждого резервирования есть пункты. Я знаю, что у меня есть отношения один ко многим, но я не могу понять, как это сделать.

Я не использую Spring, только JDBC.

Без базы данных я сделал это так:

public class Client {

    private String _fullName;
    private String _address;
    private String _email;
    private String _phoneNumber;
    private List<Reservation> _reservations;
    }

public class Reservation {

    private List<Item> _items;
    private int _totalSum;
    private boolean _toDeliver;
    private String _date;
}
public class Item {

    //primary key.
    private int _id;
    private int _price;
    private String _name;

}

Должен ли я объявить эти списки? Возможно ли это сделать без Spring, Hibernate и прочего? Я просто хочу знать, как разрабатывать мою программу.

1 Ответ

1 голос
/ 10 июля 2019

Да, вы можете делать все с помощью драйвера базы данных JDBC.

Первое, что вам нужно сделать, - это создать базу данных, то есть таблицы и ограничения и т. Д.

Затем вы возвращаетесь к Java и запрашиваете свою базу данных, используя JDBC.

Обычный подход к этому - создание класса DAO, где вы можете отделить запрос к базе данных от вашего кода.Это выглядит примерно так:

public String getUserName(String userId) throws SQLException {
    String sql = "SELECT name FROM user WHERE user_id = ?";

    try (Connection connection = getConnection();
         PreparedStatement stmt = connection.prepareStatement(sql)) {

        stmt.setString(1, userId);

        try (ResultSet rs = stmt.executeQuery()) {
            String name = rs.getString("name");
            return name;
        }
    }
}

Это всего лишь простой пример, здесь нет обработки ошибок, не рассматриваются пустые результаты запросов, есть лучшие примеры в Интернете, иллюстрирующие создание DAO и созданиеподключение.В зависимости от того, где вы выполняете этот код, для эффективности вы бы предпочли использовать пул соединений (еще одна вещь, о которой можно прочитать подробнее).

В вашем случае DAO получит данные, необходимые для вашего Item, создайте новый Item и верните его из DAO.Есть много примеров этого онлайн, если у вас есть дополнительные вопросы, не стесняйтесь спрашивать.

...