diff options
-rw-r--r-- | src/main/java/at/ac/tuwien/sepm/assignment/groupphase/einsatzverwaltung/dao/EmployeeDatabaseDao.java | 26 |
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 |