From 73c676b7c2595b585ccdae0a2a8d9c7f1ca2cb77 Mon Sep 17 00:00:00 2001 From: Jim Martens Date: Wed, 19 Apr 2017 10:46:53 +0200 Subject: [PATCH] Extracted processing of select all query into own method Signed-off-by: Jim Martens --- 02/src/de/dis2017/data/db/ORM.java | 40 ++++++++++++++++++++++------- 02/src/de/dis2017/data/db/Type.java | 10 ++++++++ 2 files changed, 41 insertions(+), 9 deletions(-) create mode 100644 02/src/de/dis2017/data/db/Type.java diff --git a/02/src/de/dis2017/data/db/ORM.java b/02/src/de/dis2017/data/db/ORM.java index e6cc95a..aba71e9 100644 --- a/02/src/de/dis2017/data/db/ORM.java +++ b/02/src/de/dis2017/data/db/ORM.java @@ -1,5 +1,6 @@ package de.dis2017.data.db; +import de.dis2017.data.Estate; import de.dis2017.data.EstateAgent; import org.jetbrains.annotations.Nullable; @@ -29,22 +30,45 @@ public class ORM { } /** - * Loads all estate agents from the database and returns a list with them. + * Loads all objects from the database and returns a list of them. * - * @return a list of estate agents + * @param objectType the type of objects to load + * @return a list of objects */ - public List getAll() { - List agents = new ArrayList<>(); + public List getAll(Type objectType) { + List objects = new ArrayList<>(); try { // create query - String selectSQL = "SELECT * FROM ESTATEAGENT"; + String selectSQL = "SELECT * FROM " + objectType.name(); PreparedStatement pstmt = _connection.prepareStatement(selectSQL); // execute query ResultSet rs = pstmt.executeQuery(); - EstateAgent agent; + switch (objectType) { + case ESTATEAGENT: + objects = processAgents(rs); + break; + } + rs.close(); + pstmt.close(); + } catch (SQLException e) { + e.printStackTrace(); + } + + return objects; + } + + /** + * Processes a select all query for estate agents. + * + * @param rs the result set of such a query + * @return a list of agents + */ + private List processAgents(ResultSet rs) { + List agents = new ArrayList<>(); + try { while (rs.next()) { - agent = new EstateAgent(); + EstateAgent agent = new EstateAgent(); agent.setId(rs.getInt("ID")); agent.setName(rs.getString("name")); agent.setAddress(rs.getString("address")); @@ -55,8 +79,6 @@ public class ORM { _agentsUsername.put(agent.getLogin(), agent); agents.add(agent); } - rs.close(); - pstmt.close(); } catch (SQLException e) { e.printStackTrace(); } diff --git a/02/src/de/dis2017/data/db/Type.java b/02/src/de/dis2017/data/db/Type.java new file mode 100644 index 0000000..cf69d1e --- /dev/null +++ b/02/src/de/dis2017/data/db/Type.java @@ -0,0 +1,10 @@ +package de.dis2017.data.db; + + +/** + * Enum of all types available. + */ +public enum Type { + ESTATEAGENT, + ESTATE; +}