aboutsummaryrefslogtreecommitdiffstats
path: root/src/main
diff options
context:
space:
mode:
Diffstat (limited to 'src/main')
-rw-r--r--src/main/java/at/ac/tuwien/sepm/assignment/groupphase/einsatzverwaltung/dao/EmployeeDatabaseDao.java26
1 files changed, 23 insertions, 3 deletions
diff --git a/src/main/java/at/ac/tuwien/sepm/assignment/groupphase/einsatzverwaltung/dao/EmployeeDatabaseDao.java b/src/main/java/at/ac/tuwien/sepm/assignment/groupphase/einsatzverwaltung/dao/EmployeeDatabaseDao.java
index 2767af2..81b8c86 100644
--- a/src/main/java/at/ac/tuwien/sepm/assignment/groupphase/einsatzverwaltung/dao/EmployeeDatabaseDao.java
+++ b/src/main/java/at/ac/tuwien/sepm/assignment/groupphase/einsatzverwaltung/dao/EmployeeDatabaseDao.java
@@ -6,7 +6,9 @@ import at.ac.tuwien.sepm.assignment.groupphase.exception.ElementNotFoundExceptio
import at.ac.tuwien.sepm.assignment.groupphase.exception.PersistenceException;
import java.lang.invoke.MethodHandles;
import java.sql.PreparedStatement;
+import java.sql.ResultSet;
import java.sql.SQLException;
+import java.sql.Statement;
import java.sql.Timestamp;
import java.util.List;
import org.slf4j.Logger;
@@ -30,9 +32,13 @@ public class EmployeeDatabaseDao implements EmployeeDAO {
throws PersistenceException {
try {
+
final var connection = connectionManager.getConnection();
- insertEmployeeVersion = connection.prepareStatement(INSERT_EMPLOYEE_VERSION);
- insertEmployee = connection.prepareStatement(INSERT_EMPLOYEE);
+ insertEmployeeVersion = connection.prepareStatement(
+ INSERT_EMPLOYEE_VERSION, Statement.RETURN_GENERATED_KEYS);
+ insertEmployee = connection.prepareStatement(
+ INSERT_EMPLOYEE, Statement.RETURN_GENERATED_KEYS);
+
} catch (SQLException e) {
throw new PersistenceException(e);
}
@@ -42,9 +48,23 @@ public class EmployeeDatabaseDao implements EmployeeDAO {
public long add(Employee employee) throws PersistenceException {
// Assumption: the given employee is already validated (from service)
+ try {
+ insertEmployeeVersion.setString(1, employee.name());
+ insertEmployeeVersion.setTimestamp(2, Timestamp.valueOf(employee.birthday().atStartOfDay()));
+ insertEmployeeVersion.setString(3, employee.educationLevel().toString());
+ insertEmployeeVersion.setBoolean(4, employee.isDriver());
+ insertEmployeeVersion.setBoolean(5, employee.isPilot());
+ insertEmployeeVersion.executeUpdate();
+ ResultSet rs = insertEmployeeVersion.getGeneratedKeys();
+ if (rs.next()) {
+ return rs.getLong(1);
+ }
+ throw new PersistenceException("Employee was not created");
- return 0;
+ } catch (SQLException e) {
+ throw new PersistenceException(e);
+ }
}
@Override