aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorDominic Rogetzer <e1627756@student.tuwien.ac.at>2018-05-01 16:00:15 +0200
committerDominic Rogetzer <e01627756@student.tuwien.ac.at>2018-05-03 22:48:29 +0200
commitdd107216517996a3dc6409df80187ebd617851ca (patch)
tree9a82ae7bb0304da972cabfd19dfc2e63b3fe5c23 /src
parent1f769136ea6a0b791c4bec24e19b625e26c90d47 (diff)
downloadsepm-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.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