Added resultSet.next()

This commit is contained in:
Riley Schneider
2025-12-03 22:22:30 +01:00
parent 625e089a36
commit 41e711ab74

View File

@@ -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