Статьи
YouTube-канал
Отзывы

Статьи с тэгом «SQL»

Обновление записи через DELETE-запрос в Spring Boot

25 апреля 2018

Тэги: Java, SQL, Spring Boot, rest.

В статье Работа с БД в Spring Boot на примере postgresql мы узнали как читать данные из БД. Но чтение данных - это лишь малая часть всех операций, которые встречаются в типичном java-приложении. Теперь попробуем создать полноценный rest-интерфейс для удаления ранее добавленных записей.

За основу возьмём наше приложение из указанной статьи. Оно состоит из трёх слоёв: dao (работа с БД), бизнес-логика приложения (service) и сам rest-интерфейс (controller), который обрабатывает входящий json и генерирует исходящий.

Начнём с доработки dao-слоя (интерфейс ProfileDao).

    void deleteProfileById(int id);

Для удаления нам достаточно знать только id записи.

В реализацию интерфейса dao (ProfileDaoImpl) добавим sql-запрос в виде константы, которую принято размещать в начале класса:

    private static final String SQL_DELETE_PROFILE = "delete from profiles where id = :id";
Читать полностью...

Обновление записи через PUT-запрос в Spring Boot

24 апреля 2018

Тэги: Java, SQL, rest, Spring Boot.

В статье Работа с БД в Spring Boot на примере postgresql мы узнали как читать данные из БД. Но чтение данных - это лишь малая часть всех операций, которые встречаются в типичном java-приложении. Теперь попробуем создать полноценный rest-интерфейс для обновления ранее добавленных записей.

За основу возьмём наше приложение из указанной статьи. Оно состоит из трёх слоёв: dao (работа с БД), бизнес-логика приложения (service) и сам rest-интерфейс (controller), который обрабатывает входящий json и генерирует исходящий.

Начнём с доработки dao-слоя (интерфейс ProfileDao).

    void updateProfile(String firstName, String secondName, int age, int id);

Для обновления нам потребуется указать id записи, а также остальные значимые поля.

В реализацию интерфейса dao (ProfileDaoImpl) добавим sql-запрос в виде константы, которую принято размещать в начале класса:

    private static final String SQL_UPDATE_PROFILE =
            "update profiles set first_name = :firstName, last_name = :lastName, age = :age where id = :id";
Читать полностью...

Добавление записи через POST-запрос в Spring Boot

23 апреля 2018

Тэги: Spring Boot, rest, SQL, Java.

В статье Работа с БД в Spring Boot на примере postgresql мы узнали как читать данные из БД. Но чтение данных - это лишь малая часть всех операций, которые встречаются в типичном java-приложении. Теперь попробуем создать полноценный rest-интерфейс для добавления новых записей, их модификации и удаления.

За основу возьмём наше приложение из указанной статьи. Оно состоит из трёх слоёв: dao (работа с БД), бизнес-логика приложения (service) и сам rest-интерфейс (controller), который обрабатывает входящий json и генерирует исходящий.

Начнём с доработки dao-слоя (интерфейс ProfileDao), где до сих пор был только один метод чтения данных.

    void insertProfile(String firstName, String secondName, int age);

При добавлении новой записи нам достаточно всего три поля. id будет сгенерирован в БД автоматически.

В реализацию интерфейса dao (ProfileDaoImpl) добавим sql-запросы в виде констант, которые принято размещать в начале класса:

    private static final String SQL_INSERT_PROFILE =
            "insert into profiles (first_name, last_name, age) values (:firstName, :lastName, :age)";
Читать полностью...

Работа с БД в Spring Boot на примере postgresql

6 января 2018

Тэги: Spring Boot, rest, SQL, PostgreSQL, Java 8.

Данная статья является продолжением Spring Boot Restful Service, где была бы раскрыта тема работы с БД в Spring Boot. Давайте рассмотрим эту тему подробнее на примере СУБД postgresql, а в качестве основы возьмём проект, который мы делали в той статье.

Напомню, что проект представляет из себя простой restful-service, который принимает GET-запрос по HTTP и возвращает профиль пользователя по его id. Сам профиль содержит кроме id также имя, фамилию и возраст. Поэтому создадим таблицу profiles в базе данных.

CREATE TABLE public.profiles
(
  id serial,
  first_name character varying(50) NOT NULL,
  last_name character varying(50) NOT NULL,
  age integer NOT NULL,
  CONSTRAINT profile_id_pk PRIMARY KEY (id)
);

insert into profiles (first_name, last_name, age) values ('Иван', 'Петров', 23);

Для поля id можно использовать тип serial. Он представляет собой целое число, которое инкрементируется (увеличивается на 1) автоматически при вставке новой записи в таблицу.

Читать полностью...

Произведение всех чисел в столбце таблицы одним SQL запросом

3 января 2018

Тэги: SQL, PostgreSQL, головоломки.

Я думаю, каждый знает такую функцию SQL, как SUM(). Она позволяет посчитать сумму всех значений по определённому столбцу. Но что, если нам вдруг понадобится посчитать не сумму, а произведение всех значений?

Как ни странно, функция SUM() нам тоже пригодится. Как нам от произведения перейти к сумме? Вспомним начала матанализа: логарифм произведения равен сумме логарифмов. Будем использовать натуральный логарифм LN() в паре с функцией возведения экспоненты в степень EXP()

Привожу пример для postgresql, но должно работать и в других СУБД:

select exp(sum(ln(field))) from tab
Читать полностью...

❮ Назад