aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorMartin Weick <e1627760@student.tuwien.ac.at>2018-05-15 11:42:18 +0200
committerTharre <tharre3@gmail.com>2018-05-22 15:02:27 +0200
commit224c0a3fb3a4a7398ea0090dcdcdc88fbe919e96 (patch)
treee514c659e8631604aca79f37ccd9804f4e54e650 /src
parent043c2fcfe24f933be9fed49d74bd11a23ed655b8 (diff)
downloadsepm-groupproject-224c0a3fb3a4a7398ea0090dcdcdc88fbe919e96.tar.gz
sepm-groupproject-224c0a3fb3a4a7398ea0090dcdcdc88fbe919e96.tar.xz
sepm-groupproject-224c0a3fb3a4a7398ea0090dcdcdc88fbe919e96.zip
Changes in Persintence Vehicle update
Diffstat (limited to 'src')
-rw-r--r--src/main/java/at/ac/tuwien/sepm/assignment/groupphase/einsatzverwaltung/dao/VehicleDatabaseDao.java75
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);