database #3
@@ -5,10 +5,7 @@ import hhn.temp.project.TaskState;
|
|||||||
import jdk.jshell.spi.ExecutionControl;
|
import jdk.jshell.spi.ExecutionControl;
|
||||||
|
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
import java.sql.Connection;
|
import java.sql.*;
|
||||||
import java.sql.DriverManager;
|
|
||||||
import java.sql.PreparedStatement;
|
|
||||||
import java.sql.SQLException;
|
|
||||||
import java.util.Collection;
|
import java.util.Collection;
|
||||||
|
|
||||||
public class SimpleDatabaseManager<E> implements DatabaseManager<E> {
|
public class SimpleDatabaseManager<E> implements DatabaseManager<E> {
|
||||||
@@ -31,11 +28,11 @@ public class SimpleDatabaseManager<E> implements DatabaseManager<E> {
|
|||||||
return (i == 1) ? TaskState.FINISHED : TaskState.IN_PROGRESS;
|
return (i == 1) ? TaskState.FINISHED : TaskState.IN_PROGRESS;
|
||||||
}
|
}
|
||||||
|
|
||||||
private String getQuery(QueryMode query) throws IOException {
|
private String getQuery(QueryMode query) {
|
||||||
String queryString = null;
|
String queryString = null;
|
||||||
|
|
||||||
switch (query) {
|
switch (query) {
|
||||||
case INSERT -> queryString = "INSERT INTO Task (name, description, workerid, taskstate) VALUES (?, ?, ?, ?)";
|
case INSERT -> queryString = "INSERT INTO Task (taskid, name, description, workerid, taskstate) VALUES (?, ?, ?, ?, ?)";
|
||||||
case UPDATE -> queryString = "UPDATE Task SET name = ?, description = ?, taskstate = ? WHERE taskid = ?";
|
case UPDATE -> queryString = "UPDATE Task SET name = ?, description = ?, taskstate = ? WHERE taskid = ?";
|
||||||
case DELETE -> queryString = "DELETE FROM Task WHERE taskid = ?";
|
case DELETE -> queryString = "DELETE FROM Task WHERE taskid = ?";
|
||||||
case SELECT -> queryString = "SELECT * FROM Task WHERE workerid = ?";
|
case SELECT -> queryString = "SELECT * FROM Task WHERE workerid = ?";
|
||||||
@@ -44,6 +41,12 @@ public class SimpleDatabaseManager<E> implements DatabaseManager<E> {
|
|||||||
return queryString;
|
return queryString;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void clearDatabase() throws SQLException {
|
||||||
|
try (Statement statement = connection.createStatement()) {
|
||||||
|
statement.executeUpdate("TRUNCATE TABLE Task;");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void saveObjects(Collection<E> objects) throws IOException, SQLException {
|
public void saveObjects(Collection<E> objects) throws IOException, SQLException {
|
||||||
for (E obj : objects) {
|
for (E obj : objects) {
|
||||||
@@ -58,7 +61,7 @@ public class SimpleDatabaseManager<E> implements DatabaseManager<E> {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void saveObject(E object) throws IOException, SQLException {
|
public void saveObject(E object) throws SQLException {
|
||||||
String query = getQuery(QueryMode.INSERT);
|
String query = getQuery(QueryMode.INSERT);
|
||||||
|
|
||||||
if (object instanceof Task task) {
|
if (object instanceof Task task) {
|
||||||
@@ -68,13 +71,35 @@ public class SimpleDatabaseManager<E> implements DatabaseManager<E> {
|
|||||||
ps.setString(3, task.getDescription());
|
ps.setString(3, task.getDescription());
|
||||||
ps.setInt(4, task.getWorkerId());
|
ps.setInt(4, task.getWorkerId());
|
||||||
ps.setInt(5, taskStateToInt(task.getTaskState()));
|
ps.setInt(5, taskStateToInt(task.getTaskState()));
|
||||||
|
|
||||||
|
ps.executeUpdate();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public E getObject(int id) throws ExecutionControl.NotImplementedException {
|
public E getObject(int id) throws SQLException {
|
||||||
throw new ExecutionControl.NotImplementedException("Not Implemented!");
|
String query = getQuery(QueryMode.SELECT);
|
||||||
|
Task task = null;
|
||||||
|
|
||||||
|
try (PreparedStatement ps = connection.prepareStatement(query)) {
|
||||||
|
ps.setInt(1, id);
|
||||||
|
|
||||||
|
ResultSet resultSet = ps.executeQuery();
|
||||||
|
|
||||||
|
if (resultSet.next()) {
|
||||||
|
|
||||||
|
task = new Task(
|
||||||
|
resultSet.getInt("taskid"),
|
||||||
|
resultSet.getInt("workderid"),
|
||||||
|
resultSet.getString("name"),
|
||||||
|
resultSet.getString("description")
|
||||||
|
);
|
||||||
|
task.setTaskState(intToTaskState(resultSet.getInt("taskstate")));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return (E) task;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|||||||
Reference in New Issue
Block a user