diff options
Diffstat (limited to 'src')
| -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);  | 
