From 51515673860585fd47519bb160b914b8778af78d Mon Sep 17 00:00:00 2001 From: Togepy95 Date: Sat, 22 Apr 2017 12:43:24 +0200 Subject: [PATCH] Bugfixes for persist(Person) and isApartment() Bugfixes for persist(Person) and isApartment() --- 02/src/de/dis2017/Main.java | 2 +- 02/src/de/dis2017/data/Person.java | 2 +- 02/src/de/dis2017/data/db/ORM.java | 30 ++++++++++++++++++++++++++++-- 3 files changed, 30 insertions(+), 4 deletions(-) diff --git a/02/src/de/dis2017/Main.java b/02/src/de/dis2017/Main.java index 5025438..c040c6f 100644 --- a/02/src/de/dis2017/Main.java +++ b/02/src/de/dis2017/Main.java @@ -167,7 +167,7 @@ public class Main { person.setName(FormUtil.readString("Name")); person.setAddress(FormUtil.readString("Address")); - //_orm.persist(person); + _orm.persist(person); System.out.println("Person with the Name " + person.getFirstName() +" "+person.getName() + " was created."); } diff --git a/02/src/de/dis2017/data/Person.java b/02/src/de/dis2017/data/Person.java index cbd4783..560e142 100644 --- a/02/src/de/dis2017/data/Person.java +++ b/02/src/de/dis2017/data/Person.java @@ -4,7 +4,7 @@ public class Person { private String firstName; private String name; private String address; - private int id; + private int id=-1; public int getId() { diff --git a/02/src/de/dis2017/data/db/ORM.java b/02/src/de/dis2017/data/db/ORM.java index e67847d..1d0bf85 100644 --- a/02/src/de/dis2017/data/db/ORM.java +++ b/02/src/de/dis2017/data/db/ORM.java @@ -25,6 +25,7 @@ public class ORM { private Map _agentsUsername; private Map _estates; private Map _persons; + private Map _contracts; /** * Initializes the ORM. @@ -35,6 +36,8 @@ public class ORM { _agents = new HashMap<>(); _agentsUsername = new HashMap<>(); _estates = new HashMap<>(); + _persons = new HashMap<>(); + _contracts = new HashMap<>(); } /** @@ -597,6 +600,7 @@ public class ORM { */ public void persist(Person person) { + System.out.println(person.getId()); boolean changeFinished = false; try { _connection.setAutoCommit(false); @@ -660,7 +664,29 @@ public class ORM { * @return true if apartment, false if house */ public boolean isApartment(int estateID){ - //TODO check in the DB if the Estate with the ID is an Apartment then return true. If it is a house return false. - return true; + if(_estates.containsKey(estateID) && _estates.get(estateID) instanceof Apartment) + return true; + + boolean isApartment = false; + try { + _connection.setAutoCommit(false); + String insertSQL = "SELECT ID FROM INTO APARTMENT WHERE ID=?"; + PreparedStatement pstmt = _connection.prepareStatement(insertSQL, Statement.RETURN_GENERATED_KEYS); + pstmt.setInt(1, estateID); + ResultSet result = pstmt.executeQuery(); + if(result.first())isApartment=true; + result.close(); + pstmt.close(); + + _connection.setAutoCommit(true); + } catch (SQLException e) { + try { + _connection.rollback(); + } catch (SQLException e1) { + e1.printStackTrace(); + } + e.printStackTrace(); + } + return isApartment; } }