Java, Spring Boot, Spring MVC, SQL, H2, REST API, JUnit
Filmorate - веб-приложение, в котором можно ставить оценки фильмам и выбирать кино на основе оценок других пользователей.
- выводить топ лучших фильмов по версии пользователей;
- отображать фильмы по жанрам;
- разделять фильмы по рейтингу Ассоциации кинокомпаний;
- у вас будет собственный профиль, где будут храниться все понравившиеся вам фильмы;
- вы можете добавлять в друзья других пользователей.
SELECT *
FROM users;
INSERT INTO users (name, login, email, birthday)
VALUE ({user.getEmail()}, {user.getLogin()}, {user.getName()}, {user.getBirthday()});
UPDATE users
SET email = {user.getEmail()},
login = {user.getLogin()},
name = {user.getName()},
birthday = {user.getBirthday()}
WHERE id = {user.getId()};
SELECT *
FROM users
WHERE user_id in (SELECT friend_id
FROM friendship
WHERE user_id = ? AND status = 'Confirmed')
SELECT *
FROM users AS u
WHERE u.USER_ID IN (SELECT f2.FRIEND_ID
FROM FRIENDSHIP AS f2
WHERE f2.USER_ID = ? AND f2.STATUS = 'Confirmed'
INTERSECT
SELECT FRIEND_ID
FROM FRIENDSHIP AS f
WHERE f.USER_ID = ? AND f.STATUS = 'Confirmed');
INSERT INTO friendship (user_id, friend_id, status) VALUES (?, ?, 'Not confirmed')
DELETE FROM friendship WHERE user_id = ? AND friend_id = ?
SELECT * FROM films
INSERT INTO films (name, description, releasedate, duration) VALUES (?, ?, ?, ?)
UPDATE films SET name = ?, description = ?, releasedate = ?, duration = ? WHERE film_id = ?
SELECT * FROM films WHERE film_id = ?
SELECT f.*
FROM film_likes AS fl
JOIN films AS f ON fl.film_id=f.film_id
GROUP BY fl.film_id
ORDER BY COUNT(fl.user_id) DESC
LIMIT ?
INSERT INTO film_likes (film_id, user_id) VALUES (?, ?)
DELETE FROM film_likes WHERE film_id = ? AND user_id = ?
