Skip to content

CRUD app. Tech stack: java spring, thymeleaf, HTML, CSS, postgres, JDBC Template, JS (fetch, generate HTML)

Notifications You must be signed in to change notification settings

ShulV/CRUD-app-JDBC-Template

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

54 Commits
 
 
 
 
 
 
 
 

Repository files navigation

CRUD приложение для работы с данными книг и читателей

CRUD app. Tech stack: java spring, thymeleaf, HTML, CSS, postgres, JDBC Template

Web-страницы:

Список людей:

index.html

Более подробно об одном человеке:

person.html - 1 person.html - 2

Редактирование человека:

edit-person.html

Список книг:

books.html

Более подробно об одной книге:

book.html - 1 book.html - 2

Редактирование книги:

book-edit.html - 2

Реляционная модель БД:

rel model

Скрипты работы с базой данных (PostgreSQL):

Код генерации БД (DB generation SQL script):

CREATE TABLE people(
    id integer NOT NULL GENERATED BY DEFAULT AS IDENTITY PRIMARY KEY,
    "name" varchar(50) NOT NULL,
    patronymic varchar(50) NOT NULL,
    surname varchar(50) NOT NULL,
    birthday date NOT NULL,
    email varchar(50) NOT NULL UNIQUE,
);

CREATE TABLE books(
    id integer NOT NULL GENERATED BY DEFAULT AS IDENTITY PRIMARY KEY,
    "name" varchar(100) NOT NULL,
    author varchar(100) NOT NULL,
    date date NOT NULL,
    person_id int DEFAULT NULL REFERENCES people(id) ON DELETE Set null ON UPDATE Cascade
);

Пример добавления пользователей:

INSERT INTO public.people(
	name, patronymic, surname, birthday)
	VALUES ('Виктор', 'Максимович', 'Шульпов', '14.07.2001'),
	('Илья', 'Игоревич', 'Шинтяпин', '15.05.2001'),
	('Максим', 'Владимирович', 'Иванов', '16.10.2000');

Пример добавления книг:

INSERT INTO public.books(
	name, author, date)
	VALUES ('Война и мир', 'Лев Толстой', '01.01.1862'),
	('Отцы и дети', 'Иван Тургенев', '01.01.1868'),
	('Старик и море', 'Эрнест Хемингуэй', '01.01.1952');

Выборка всех людей:

SELECT * FROM People;

Выборка всех книг:

SELECT * FROM Books;

Выборка человека по id:

SELECT * FROM People WHERE id=?;

Выборка книги по id:

SELECT * FROM Books WHERE id=?;

Пример выборки человека, который взял книгу:

select p.id, p.name, p.patronymic, p.surname, p.birthday from people as p
    join books as b
    on p.id = b.person_id
    where b.id = 4;

Пример редактирования данных человека:

update people set name = ?, patronymic = ?, surname = ?, birthday = ?, email = ? where id = ?;

Пример редактирования данных книги:

update books set name = ?, author = ?, date = ? where id = ?;

Пример удаления человека по id:

DELETE FROM People WHERE id = ?;

Пример освобождения книги:

UPDATE Books SET person_id = NULL WHERE id = ?;

Пример присваивания книги:

UPDATE Books SET person_id = ? WHERE id = ?;

About

CRUD app. Tech stack: java spring, thymeleaf, HTML, CSS, postgres, JDBC Template, JS (fetch, generate HTML)

Resources

Stars

Watchers

Forks

Packages

No packages published