From a1c8e9d0d6b40e1207009ef015f98c45016a0061 Mon Sep 17 00:00:00 2001 From: Mohamed <“moibrahi7@gmail.com”> Date: Mon, 1 Apr 2024 14:53:34 +0000 Subject: [PATCH 1/3] Feat: Added SQL code, Model, and REPO --- .../lesson14/models/LibraryUserModel.java | 15 +++++++++++ .../repository/LibraryUserRepository.java | 10 ++++++++ .../main/resources/queries/mohamedibrahim.sql | 24 ++++++++++++++++++ .../db_app/src/main/resources/sqlite/data.db | Bin 16384 -> 24576 bytes 4 files changed, 49 insertions(+) create mode 100644 lesson_14/db/db_app/src/main/java/com/codedifferently/lesson14/models/LibraryUserModel.java create mode 100644 lesson_14/db/db_app/src/main/java/com/codedifferently/lesson14/repository/LibraryUserRepository.java create mode 100644 lesson_14/db/db_app/src/main/resources/queries/mohamedibrahim.sql diff --git a/lesson_14/db/db_app/src/main/java/com/codedifferently/lesson14/models/LibraryUserModel.java b/lesson_14/db/db_app/src/main/java/com/codedifferently/lesson14/models/LibraryUserModel.java new file mode 100644 index 00000000..e7b2af92 --- /dev/null +++ b/lesson_14/db/db_app/src/main/java/com/codedifferently/lesson14/models/LibraryUserModel.java @@ -0,0 +1,15 @@ +package com.codedifferently.lesson14.models; + +import jakarta.persistence.Entity; +import jakarta.persistence.Id; +import jakarta.persistence.Table; + +@Entity +@Table(name = "guests") +public class LibraryUserModel { + @Id public String id; + public String email; + public String first_name; + public String last_name; + public String password; +} diff --git a/lesson_14/db/db_app/src/main/java/com/codedifferently/lesson14/repository/LibraryUserRepository.java b/lesson_14/db/db_app/src/main/java/com/codedifferently/lesson14/repository/LibraryUserRepository.java new file mode 100644 index 00000000..b742cee1 --- /dev/null +++ b/lesson_14/db/db_app/src/main/java/com/codedifferently/lesson14/repository/LibraryUserRepository.java @@ -0,0 +1,10 @@ +package com.codedifferently.lesson14.repository; + +import com.codedifferently.lesson14.models.LibraryUserModel; +import java.util.List; +import org.springframework.data.repository.CrudRepository; + +public interface LibraryUserRepository extends CrudRepository { + @Override + List findAll(); +} diff --git a/lesson_14/db/db_app/src/main/resources/queries/mohamedibrahim.sql b/lesson_14/db/db_app/src/main/resources/queries/mohamedibrahim.sql new file mode 100644 index 00000000..0189dbac --- /dev/null +++ b/lesson_14/db/db_app/src/main/resources/queries/mohamedibrahim.sql @@ -0,0 +1,24 @@ +SELECT type, COUNT(*) +FROM media_items +GROUP BY type; + +SELECT SUM(pages) +FROM media_items, checked_out_items +WHERE id = item_id ; + +SELECT G.type, G.name, CI.* +FROM guests G +LEFT JOIN checked_out_items CI +ON G.email = CI.email; + +CREATE TABLE library_users( +id VARCHAR(36) PRIMARY KEY, +email VARCHAR(320), +first_name VARCHAR(50), +last_name VARCHAR(50), +password VARCHAR(72)); + +INSERT INTO library_users(id, email,first_name, last_name, password) +VALUES ("2584d0d6-fe06-46f2-be8b-6f1a31b57fb3","johnjr@book.com","John", "Book Jr.", "$2a$12$pKO91AkPiVjNjPX0f8Cu1Os6zPO3e7slKayXMGXgeTr2grCwM.0Hu"); + +SELECT * FROM library_users; \ No newline at end of file diff --git a/lesson_14/db/db_app/src/main/resources/sqlite/data.db b/lesson_14/db/db_app/src/main/resources/sqlite/data.db index 8baa982d2b27c50808a4c569a14c47972c41a695..f986e3072573568141178492d8c78c1d466f0cca 100644 GIT binary patch delta 703 zcma)&UvJV-7>8RXL&+#|LAY3EYC-};%KC?va%1ceVJirBrP3?Xvz}t1PY0AsA0i~hDDzf-w8FM5wXvUA3L*!_&AhErSS88-vADDY=8_j?TkH$yp0enDP>75 zld5!3E0Y^lI&7PyCMl(=q@+0^LpGJex}@l&T-LK>7!C~Ex$9XvlMP!o^8C)wm<{0H zhF=$sakKw-Ju*CR;-b4V1vZl@#_k>mfVjq@=fw5ZQ}QRVY(AJR0)bHLS$uC1WO*@f(xyOJkQS)CV6hZ{BA^6| zF*pYB1q*OJ_ua6EUI5qa=T6+g(JCISX7UK-lB|(r*yKoV6d9@Cw6)&rUb9VGVrk4Y zJmIX_;9$XXWMkT{SK3{uBDRZ4vq?QiSH~amP%9OWFM>1x90V3mK?X7_h~fzaXx^fP zVxEVhXu?~F{}67^Pfgv2s^8ZtA{a`q&h`)6{#*D`QIRLeZG**iVBZ-H;3@8 GF$4f94hw1k From 7e2aa7d3dd7d74d53cf47eebe2e54879f444f200 Mon Sep 17 00:00:00 2001 From: Mohamed <“moibrahi7@gmail.com”> Date: Mon, 1 Apr 2024 16:07:41 +0000 Subject: [PATCH 2/3] Fix: Added suport for new table --- .../codedifferently/lesson14/factory/LibraryDbDataLoader.java | 3 +++ .../com/codedifferently/lesson14/models/LibraryDataModel.java | 1 + 2 files changed, 4 insertions(+) diff --git a/lesson_14/db/db_app/src/main/java/com/codedifferently/lesson14/factory/LibraryDbDataLoader.java b/lesson_14/db/db_app/src/main/java/com/codedifferently/lesson14/factory/LibraryDbDataLoader.java index c0e49ada..bcf71eae 100644 --- a/lesson_14/db/db_app/src/main/java/com/codedifferently/lesson14/factory/LibraryDbDataLoader.java +++ b/lesson_14/db/db_app/src/main/java/com/codedifferently/lesson14/factory/LibraryDbDataLoader.java @@ -2,6 +2,7 @@ import com.codedifferently.lesson14.models.LibraryDataModel; import com.codedifferently.lesson14.repository.LibraryGuestRepository; +import com.codedifferently.lesson14.repository.LibraryUserRepository; import com.codedifferently.lesson14.repository.MediaItemRepository; import java.io.IOException; import org.springframework.beans.factory.annotation.Autowired; @@ -13,6 +14,7 @@ public final class LibraryDbDataLoader implements LibraryDataLoader { @Autowired private MediaItemRepository mediaItemsRepository; @Autowired private LibraryGuestRepository libraryGuestRepository; + @Autowired private LibraryUserRepository libraryUserRepository; @Override public LibraryDataModel loadData() throws IOException { @@ -20,6 +22,7 @@ public LibraryDataModel loadData() throws IOException { model.mediaItems = mediaItemsRepository.findAll(); model.guests = libraryGuestRepository.findAll(); + model.users = libraryUserRepository.findAll(); return model; } diff --git a/lesson_14/db/db_app/src/main/java/com/codedifferently/lesson14/models/LibraryDataModel.java b/lesson_14/db/db_app/src/main/java/com/codedifferently/lesson14/models/LibraryDataModel.java index 21581f4b..6c1d3816 100644 --- a/lesson_14/db/db_app/src/main/java/com/codedifferently/lesson14/models/LibraryDataModel.java +++ b/lesson_14/db/db_app/src/main/java/com/codedifferently/lesson14/models/LibraryDataModel.java @@ -16,6 +16,7 @@ public class LibraryDataModel { public List mediaItems; public List guests; + public List users; public List getMediaItems() { List results = new ArrayList<>(); From dddf07a35a61191759efd855062b329a50c649dc Mon Sep 17 00:00:00 2001 From: Mohamed <“moibrahi7@gmail.com”> Date: Tue, 2 Apr 2024 12:08:09 +0000 Subject: [PATCH 3/3] Fix: Changed data base refrance name to match the table it is accsessing. --- .../com/codedifferently/lesson14/models/LibraryUserModel.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lesson_14/db/db_app/src/main/java/com/codedifferently/lesson14/models/LibraryUserModel.java b/lesson_14/db/db_app/src/main/java/com/codedifferently/lesson14/models/LibraryUserModel.java index e7b2af92..0ede0650 100644 --- a/lesson_14/db/db_app/src/main/java/com/codedifferently/lesson14/models/LibraryUserModel.java +++ b/lesson_14/db/db_app/src/main/java/com/codedifferently/lesson14/models/LibraryUserModel.java @@ -5,7 +5,7 @@ import jakarta.persistence.Table; @Entity -@Table(name = "guests") +@Table(name = "library_users") public class LibraryUserModel { @Id public String id; public String email;