Add cache for database
This commit is contained in:
@@ -28,12 +28,14 @@ public class DataBase {
|
|||||||
private static DataBase instance;
|
private static DataBase instance;
|
||||||
private final Connection connection;
|
private final Connection connection;
|
||||||
private final List<TaskDB> TaskDBList = new ArrayList<>();
|
private final List<TaskDB> TaskDBList = new ArrayList<>();
|
||||||
|
private final List<User> DataBaseCache = new ArrayList<>();
|
||||||
private final Timer UpdateDBTimer = new Timer();
|
private final Timer UpdateDBTimer = new Timer();
|
||||||
|
|
||||||
public void close() {
|
public void close() {
|
||||||
UpdateDBTimer.cancel();
|
UpdateDBTimer.cancel();
|
||||||
for (TaskDB i : TaskDBList)
|
for (TaskDB i : TaskDBList)
|
||||||
i.execute();
|
i.execute();
|
||||||
|
DataBaseCache.clear();
|
||||||
TaskDBList.clear();
|
TaskDBList.clear();
|
||||||
try {
|
try {
|
||||||
connection.close();
|
connection.close();
|
||||||
@@ -56,6 +58,7 @@ public class DataBase {
|
|||||||
public void run() {
|
public void run() {
|
||||||
for (TaskDB i : TaskDBList)
|
for (TaskDB i : TaskDBList)
|
||||||
i.execute();
|
i.execute();
|
||||||
|
DataBaseCache.clear();
|
||||||
TaskDBList.clear();
|
TaskDBList.clear();
|
||||||
}
|
}
|
||||||
}, 1_800_000,1_800_000);
|
}, 1_800_000,1_800_000);
|
||||||
@@ -97,6 +100,7 @@ public class DataBase {
|
|||||||
saveUser_stmt.setString(2, user.getPassword());
|
saveUser_stmt.setString(2, user.getPassword());
|
||||||
saveUser_stmt.setString(3, Serialize(user.getTaskList()));
|
saveUser_stmt.setString(3, Serialize(user.getTaskList()));
|
||||||
TaskDBList.add(new TaskDB(saveUser_stmt));
|
TaskDBList.add(new TaskDB(saveUser_stmt));
|
||||||
|
DataBaseCache.add(user);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void UpdateTaskList(User user) throws SQLException {
|
public void UpdateTaskList(User user) throws SQLException {
|
||||||
@@ -107,6 +111,11 @@ public class DataBase {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public User FindUser(String login) throws SQLException {
|
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 = ?");
|
PreparedStatement getUser_stmt = connection.prepareStatement("SELECT * FROM user WHERE login = ?");
|
||||||
getUser_stmt.setString(1, login);
|
getUser_stmt.setString(1, login);
|
||||||
ResultSet resultSet = getUser_stmt.executeQuery();
|
ResultSet resultSet = getUser_stmt.executeQuery();
|
||||||
|
|||||||
Reference in New Issue
Block a user