From 3a08578555559cc964e3d626aab01c456dc7dbc7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=94=D0=B0=D0=BD=D0=B8=D0=BB?= <119668441+Jiga228@users.noreply.github.com> Date: Thu, 22 May 2025 15:52:25 +0700 Subject: [PATCH] Add cache for database --- .../Samsung/TaskTraker_Server/Repository/DataBase.java | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/src/main/java/com/Samsung/TaskTraker_Server/Repository/DataBase.java b/src/main/java/com/Samsung/TaskTraker_Server/Repository/DataBase.java index d7d7115..6485a45 100644 --- a/src/main/java/com/Samsung/TaskTraker_Server/Repository/DataBase.java +++ b/src/main/java/com/Samsung/TaskTraker_Server/Repository/DataBase.java @@ -28,12 +28,14 @@ public class DataBase { private static DataBase instance; private final Connection connection; private final List TaskDBList = new ArrayList<>(); + private final List DataBaseCache = new ArrayList<>(); private final Timer UpdateDBTimer = new Timer(); public void close() { UpdateDBTimer.cancel(); for (TaskDB i : TaskDBList) i.execute(); + DataBaseCache.clear(); TaskDBList.clear(); try { connection.close(); @@ -56,6 +58,7 @@ public class DataBase { public void run() { for (TaskDB i : TaskDBList) i.execute(); + DataBaseCache.clear(); TaskDBList.clear(); } }, 1_800_000,1_800_000); @@ -97,6 +100,7 @@ public class DataBase { saveUser_stmt.setString(2, user.getPassword()); saveUser_stmt.setString(3, Serialize(user.getTaskList())); TaskDBList.add(new TaskDB(saveUser_stmt)); + DataBaseCache.add(user); } public void UpdateTaskList(User user) throws SQLException { @@ -107,6 +111,11 @@ public class DataBase { } public User FindUser(String login) throws SQLException { + for (User i : DataBaseCache) { + if(i.getLogin().equals(login)) + return i; + } + PreparedStatement getUser_stmt = connection.prepareStatement("SELECT * FROM user WHERE login = ?"); getUser_stmt.setString(1, login); ResultSet resultSet = getUser_stmt.executeQuery();