aboutsummaryrefslogtreecommitdiffstats
path: root/src/main
diff options
context:
space:
mode:
authorDominic Rogetzer <e1627756@student.tuwien.ac.at>2018-05-05 11:26:47 +0200
committerFelix Kehrer <felix.kehrer@gmail.com>2018-05-07 14:55:08 +0200
commitcc362865daee16d234f772d237c020973689e5eb (patch)
tree17a828321eb7c35eb9d38df819e9cc9c8bbea3b0 /src/main
parentd3f8c25338c4dfbefc70eb5cb01f2f448ecb9e99 (diff)
downloadsepm-groupproject-cc362865daee16d234f772d237c020973689e5eb.tar.gz
sepm-groupproject-cc362865daee16d234f772d237c020973689e5eb.tar.xz
sepm-groupproject-cc362865daee16d234f772d237c020973689e5eb.zip
Implement EmployeeDatabaseDao.list
Diffstat (limited to 'src/main')
-rw-r--r--src/main/java/at/ac/tuwien/sepm/assignment/groupphase/einsatzverwaltung/dao/EmployeeDatabaseDao.java36
1 files changed, 34 insertions, 2 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 900fd0e..bd59dd1 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
@@ -1,6 +1,7 @@
package at.ac.tuwien.sepm.assignment.groupphase.einsatzverwaltung.dao;
import at.ac.tuwien.sepm.assignment.groupphase.einsatzverwaltung.dto.Employee;
+import at.ac.tuwien.sepm.assignment.groupphase.einsatzverwaltung.dto.Employee.EducationLevel;
import at.ac.tuwien.sepm.assignment.groupphase.exception.ElementNotFoundException;
import at.ac.tuwien.sepm.assignment.groupphase.exception.PersistenceException;
import at.ac.tuwien.sepm.assignment.groupphase.util.JDBCConnectionManager;
@@ -10,6 +11,7 @@ import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.sql.Timestamp;
+import java.util.ArrayList;
import java.util.List;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -23,8 +25,12 @@ public class EmployeeDatabaseDao implements EmployeeDAO {
"INSERT INTO EmployeeVersion(name, birthday, educationLevel, isDriver, isPilot) "
+ "VALUES(?, ?, ?, ?, ?)";
private static final String INSERT_EMPLOYEE = "INSERT INTO Employee(version) VALUES(?)";
+ private static final String LIST_EMPLOYEE =
+ "SELECT emp.id, v.name, v.birthday, v.educationLevel, v.isDriver, v.isPilot " +
+ "FROM employee emp " +
+ "JOIN EmployeeVersion v ON v.id = emp.version";
- private final PreparedStatement insertEmployeeVersion, insertEmployee;
+ private final PreparedStatement insertEmployeeVersion, insertEmployee, listEmployee;
public EmployeeDatabaseDao(JDBCConnectionManager connectionManager)
throws PersistenceException {
@@ -38,6 +44,8 @@ public class EmployeeDatabaseDao implements EmployeeDAO {
insertEmployee =
connection.prepareStatement(INSERT_EMPLOYEE, Statement.RETURN_GENERATED_KEYS);
+ listEmployee = connection.prepareStatement(LIST_EMPLOYEE);
+
} catch (SQLException e) {
throw new PersistenceException(e);
}
@@ -82,7 +90,31 @@ public class EmployeeDatabaseDao implements EmployeeDAO {
@Override
public List<Employee> list() throws PersistenceException {
- throw new UnsupportedOperationException();
+
+ try {
+ ResultSet rs = listEmployee.executeQuery();
+
+ List<Employee> employees = new ArrayList<>();
+ while(rs.next()) {
+
+ Employee employee =
+ Employee.builder()
+ .id(rs.getLong(1))
+ .name(rs.getString(2))
+ .birthday(rs.getTimestamp(3).toLocalDateTime().toLocalDate())
+ .educationLevel(EducationLevel.valueOf(rs.getString(4)))
+ .isDriver(rs.getBoolean(5))
+ .isPilot(rs.getBoolean(6))
+ .build();
+
+ employees.add(employee);
+ }
+
+ return employees;
+
+ } catch (SQLException e) {
+ throw new PersistenceException(e);
+ }
}
@Override