diff options
Diffstat (limited to 'src/main')
| -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  | 
