diff options
author | Dominic Rogetzer <e1627756@student.tuwien.ac.at> | 2018-05-01 16:00:15 +0200 |
---|---|---|
committer | Dominic Rogetzer <e01627756@student.tuwien.ac.at> | 2018-05-03 22:48:29 +0200 |
commit | dd107216517996a3dc6409df80187ebd617851ca (patch) | |
tree | 9a82ae7bb0304da972cabfd19dfc2e63b3fe5c23 /src | |
parent | 1f769136ea6a0b791c4bec24e19b625e26c90d47 (diff) | |
download | sepm-groupproject-dd107216517996a3dc6409df80187ebd617851ca.tar.gz sepm-groupproject-dd107216517996a3dc6409df80187ebd617851ca.tar.xz sepm-groupproject-dd107216517996a3dc6409df80187ebd617851ca.zip |
implement EmployeeDatabaseDao.add
Diffstat (limited to 'src')
-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 |