diff options
| author | Martin Weick <e1627760@student.tuwien.ac.at> | 2018-05-15 11:42:18 +0200 | 
|---|---|---|
| committer | Tharre <tharre3@gmail.com> | 2018-05-22 15:02:27 +0200 | 
| commit | 224c0a3fb3a4a7398ea0090dcdcdc88fbe919e96 (patch) | |
| tree | e514c659e8631604aca79f37ccd9804f4e54e650 /src/main/java/at/ac/tuwien/sepm/assignment | |
| parent | 043c2fcfe24f933be9fed49d74bd11a23ed655b8 (diff) | |
| download | sepm-groupproject-224c0a3fb3a4a7398ea0090dcdcdc88fbe919e96.tar.gz sepm-groupproject-224c0a3fb3a4a7398ea0090dcdcdc88fbe919e96.tar.xz sepm-groupproject-224c0a3fb3a4a7398ea0090dcdcdc88fbe919e96.zip  | |
Changes in Persintence Vehicle update
Diffstat (limited to 'src/main/java/at/ac/tuwien/sepm/assignment')
| -rw-r--r-- | src/main/java/at/ac/tuwien/sepm/assignment/groupphase/einsatzverwaltung/dao/VehicleDatabaseDao.java | 75 | 
1 files changed, 52 insertions, 23 deletions
diff --git a/src/main/java/at/ac/tuwien/sepm/assignment/groupphase/einsatzverwaltung/dao/VehicleDatabaseDao.java b/src/main/java/at/ac/tuwien/sepm/assignment/groupphase/einsatzverwaltung/dao/VehicleDatabaseDao.java index 62de20a..8af5bf4 100644 --- a/src/main/java/at/ac/tuwien/sepm/assignment/groupphase/einsatzverwaltung/dao/VehicleDatabaseDao.java +++ b/src/main/java/at/ac/tuwien/sepm/assignment/groupphase/einsatzverwaltung/dao/VehicleDatabaseDao.java @@ -49,10 +49,11 @@ public class VehicleDatabaseDao implements VehicleDAO {              }              p1.executeUpdate(); -            ResultSet keyResultSet = p1.getGeneratedKeys(); +            try (ResultSet keyResultSet = p1.getGeneratedKeys()) { -            if (keyResultSet.next()) { -                id = keyResultSet.getInt(1); +                if (keyResultSet.next()) { +                    id = keyResultSet.getInt(1); +                }              }              name = vehicle.type().name() + "-" + id; @@ -101,30 +102,55 @@ public class VehicleDatabaseDao implements VehicleDAO {      @Override      public void update(Vehicle vehicle) throws ElementNotFoundException, PersistenceException { -        String query1 = -                "UPDATE VehicleVersion SET name=?, constructionType=?, type=?, hasNef=? WHERE id=?"; -        String name = vehicle.type().name() + "-" + vehicle.id(); -        PreparedStatement p = null; +        String query="SELECT id FROM vehicle WHERE version=?"; +        PreparedStatement p=null; +        long vehicleID=-1; +        long vehicleVersion=-1;          try { -            p = jdbcConnectionManager.getConnection().prepareStatement(query1); -            p.setString(1, vehicle.name()); -            p.setString(2, vehicle.constructionType().name()); +            p=jdbcConnectionManager.getConnection().prepareStatement(query); +            p.setLong(1,vehicle.id()); +            p.executeQuery(); +            try (ResultSet rs = p.getResultSet()) { +                while (rs.next()) { +                    vehicleID = rs.getLong(1); +                } +            } +            query="INSERT INTO VehicleVersion (name,hasNef,constructionType,type) VALUES (?,?,?,?)"; +            String name=""; +            p=jdbcConnectionManager.getConnection().prepareStatement(query); +            p.setString(1, name); +            p.setBoolean(2, vehicle.hasNef()); +            p.setString(3, vehicle.constructionType().name());              if (vehicle.type() == VehicleType.KTW_B) { -                p.setString(3, "KTW-B"); +                p.setString(4, "KTW-B");              } else { -                p.setString(3, name); +                p.setString(4, vehicle.type().name());              } -            p.setBoolean(4, vehicle.hasNef()); -            p.setLong(5, vehicle.id());              p.executeUpdate(); -        } catch (SQLException e) { -            throw new PersistenceException("SQLException : " + e); -        } finally { -            try { -                p.close(); -            } catch (SQLException e) { -                throw new PersistenceException("SQLException : " + e); + +            try (ResultSet keyResultSet = p.getGeneratedKeys()) { + +                if (keyResultSet.next()) { +                    vehicleVersion = keyResultSet.getInt(1); +                }              } + +            name = vehicle.type().name() + "-" + vehicleVersion; + +            query = "UPDATE VehicleVersion SET name=? WHERE id=?"; +            p = jdbcConnectionManager.getConnection().prepareStatement(query); +            p.setString(1, name); +            p.setLong(2, vehicleVersion); +            p.executeUpdate(); + +            query="UPDATE Vehicle SET version=? WHERE id=?"; +            p=jdbcConnectionManager.getConnection().prepareStatement(query); +            p.setLong(1,vehicleVersion); +            p.setLong(2,vehicleID); +            p.executeUpdate(); + +        } catch (SQLException e) { +            e.printStackTrace();          }      } @@ -140,8 +166,11 @@ public class VehicleDatabaseDao implements VehicleDAO {                                      "Select * from VehicleVersion, "                                              + "Vehicle where VehicleVersion.id=Vehicle.version");              pstmt.executeQuery(); -            ResultSet rs = pstmt.getResultSet(); -            while (rs.next()) result.add(vehicleFromRS(rs)); +            try (ResultSet rs = pstmt.getResultSet()) { +                while (rs.next()) { +                    result.add(vehicleFromRS(rs)); +                } +            }          } catch (SQLException e) {              throw new PersistenceException("Die Werte konnten nicht geladen werden.", e);  | 
