diff options
| author | Martin Weick <e1627760@student.tuwien.ac.at> | 2018-05-15 15:40:23 +0200 | 
|---|---|---|
| committer | Tharre <tharre3@gmail.com> | 2018-05-22 15:02:27 +0200 | 
| commit | e978119c2ea7624d05b80080a94b3ba1fcc7f040 (patch) | |
| tree | 2150e2123291ed8a3fb317a5ddcad24a001ac6cd /src | |
| parent | 6aad8bb1dcf43fabff2a48f4d33ff86a23beefef (diff) | |
| download | sepm-groupproject-e978119c2ea7624d05b80080a94b3ba1fcc7f040.tar.gz sepm-groupproject-e978119c2ea7624d05b80080a94b3ba1fcc7f040.tar.xz sepm-groupproject-e978119c2ea7624d05b80080a94b3ba1fcc7f040.zip  | |
Change in Try with Resources in update and add Vehicle #25948
Diffstat (limited to 'src')
| -rw-r--r-- | src/main/java/at/ac/tuwien/sepm/assignment/groupphase/einsatzverwaltung/dao/VehicleDatabaseDao.java | 196 | 
1 files changed, 83 insertions, 113 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 b2d253a..c6c03f6 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 @@ -11,6 +11,7 @@ import java.sql.Connection;  import java.sql.PreparedStatement;  import java.sql.ResultSet;  import java.sql.SQLException; +import java.sql.Statement;  import java.util.HashSet;  import java.util.Set;  import org.springframework.stereotype.Repository; @@ -28,167 +29,136 @@ public class VehicleDatabaseDao implements VehicleDAO {          String query1 =                  "INSERT INTO VehicleVersion (name,hasNef,constructionType,type) VALUES (?,?,?,?)";          String query2 = "INSERT INTO Vehicle (version,status) VALUES (?,?)"; -        PreparedStatement p1 = null; -        PreparedStatement p2 = null; -        PreparedStatement p3 = null; +          String status = "ABGEMELDET";          String name = "";          int id = -1;          try { -            p1 = -                    jdbcConnectionManager -                            .getConnection() -                            .prepareStatement(query1, PreparedStatement.RETURN_GENERATED_KEYS); -            p1.setString(1, name); -            p1.setBoolean(2, vehicle.hasNef()); -            p1.setString(3, vehicle.constructionType().name()); -            if (vehicle.type() == VehicleType.KTW_B) { -                p1.setString(4, "KTW-B"); -            } else { +            Connection connection = jdbcConnectionManager.getConnection(); +            connection.setAutoCommit(false); +            try (PreparedStatement p1 = +                    connection.prepareStatement(query1, PreparedStatement.RETURN_GENERATED_KEYS)) { + +                p1.setString(1, name); +                p1.setBoolean(2, vehicle.hasNef()); +                p1.setString(3, vehicle.constructionType().name()); +                  p1.setString(4, vehicle.type().name()); -            } -            p1.executeUpdate(); -            try (ResultSet keyResultSet = p1.getGeneratedKeys()) { +                p1.executeUpdate(); + +                try (ResultSet keyResultSet = p1.getGeneratedKeys()) { -                if (keyResultSet.next()) { -                    id = keyResultSet.getInt(1); +                    if (keyResultSet.next()) { +                        id = keyResultSet.getInt(1); +                    }                  } + +                name = vehicle.type().name() + "-" + id;              } -            name = vehicle.type().name() + "-" + id; +            query1 = "UPDATE VehicleVersion SET name=? WHERE id=?"; +            try (PreparedStatement p3 = connection.prepareStatement(query1)) { +                p3.setString(1, name); +                p3.setInt(2, id); +                p3.executeUpdate(); +            } -        } catch (SQLException e) { -            throw new PersistenceException("SQL Excpetion : " + e.toString()); -        } finally { -            try { -                p1.close(); +            try (PreparedStatement p2 = connection.prepareStatement(query2)) { -            } catch (SQLException e) { -                throw new PersistenceException("SQL Excpetion : " + e.toString()); +                p2.setInt(1, id); +                p2.setString(2, status); +                p2.executeUpdate();              } -        } -        try { -            query1 = "UPDATE VehicleVersion SET name=? WHERE id=?"; -            p3 = jdbcConnectionManager.getConnection().prepareStatement(query1); -            p3.setString(1, name); -            p3.setInt(2, id); -            p3.executeUpdate(); +            connection.commit(); +            connection.setAutoCommit(true);          } catch (SQLException e) { -            throw new PersistenceException("SQL Excpetion : " + e.toString()); -        } finally { -            try { -                p3.close(); -            } catch (SQLException e) { -                throw new PersistenceException("SQL Excpetion : " + e.toString()); -            } -        } -        try { -            p2 = jdbcConnectionManager.getConnection().prepareStatement(query2); -            p2.setInt(1, id); -            p2.setString(2, status); -            p2.executeUpdate(); -        } catch (SQLException e) { -            throw new PersistenceException("SQL Excpetion : " + e.toString()); -        } finally { -            try { -                p2.close(); -            } catch (SQLException e) { -                throw new PersistenceException("SQL Excpetion : " + e.toString()); -            } +            throw new PersistenceException(e);          }          return id;      }      @Override      public void update(Vehicle vehicle) throws ElementNotFoundException, PersistenceException { -        String query="SELECT id FROM vehicle WHERE version=?"; -        PreparedStatement p=null; -        long vehicleID=-1; -        long vehicleVersion=-1; +        String query = "SELECT id FROM vehicle WHERE version=?"; + +        long vehicleID = -1; +        long vehicleVersion = -1;          try { -            p=jdbcConnectionManager.getConnection().prepareStatement(query); -            p.setLong(1,vehicle.id()); -            p.executeQuery(); -            try (ResultSet rs = p.getResultSet()) { -                while (rs.next()) { -                    vehicleID = rs.getLong(1); +            Connection connection = jdbcConnectionManager.getConnection(); +            connection.setAutoCommit(false); +            try (PreparedStatement p = +                    connection.prepareStatement(query, Statement.RETURN_GENERATED_KEYS)) { + +                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(4, "KTW-B"); -            } else { + +            query = +                    "INSERT INTO VehicleVersion (name,hasNef,constructionType,type) VALUES (?,?,?,?)"; +            String name = ""; +            try (PreparedStatement p = +                    connection.prepareStatement(query, Statement.RETURN_GENERATED_KEYS)) { +                p.setString(1, name); +                p.setBoolean(2, vehicle.hasNef()); +                p.setString(3, vehicle.constructionType().name()); +                  p.setString(4, vehicle.type().name()); -            } -            p.executeUpdate(); -            try (ResultSet keyResultSet = p.getGeneratedKeys()) { +                p.executeUpdate(); -                if (keyResultSet.next()) { -                    vehicleVersion = keyResultSet.getInt(1); +                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(); +            try (PreparedStatement p = connection.prepareStatement(query)) { -            query="UPDATE Vehicle SET version=? WHERE id=?"; -            p=jdbcConnectionManager.getConnection().prepareStatement(query); -            p.setLong(1,vehicleVersion); -            p.setLong(2,vehicleID); -            p.executeUpdate(); +                p.setString(1, name); +                p.setLong(2, vehicleVersion); +                p.executeUpdate(); +            } +            query = "UPDATE Vehicle SET version=? WHERE id=?"; +            try (PreparedStatement p = connection.prepareStatement(query)) { -        } catch (SQLException e) { -            throw new PersistenceException("SQL Excpetion : " + e.toString()); -        } finally { -            try { -                p.close(); -            } catch (SQLException e) { -                throw new PersistenceException("SQL Excpetion : " + e.toString()); +                p.setLong(1, vehicleVersion); +                p.setLong(2, vehicleID); +                p.executeUpdate();              } +            connection.commit(); +            connection.setAutoCommit(true); +        } catch (SQLException e) { +            throw new PersistenceException(e);          }      }      @Override      public Set<Vehicle> list() throws PersistenceException { -        PreparedStatement pstmt = null;          Set<Vehicle> result = new HashSet<>(); -        try { -            pstmt = -                    jdbcConnectionManager -                            .getConnection() -                            .prepareStatement( -                                    "Select * from VehicleVersion, " -                                            + "Vehicle where VehicleVersion.id=Vehicle.version"); + +        String sql = +                "Select * from VehicleVersion, Vehicle where VehicleVersion.id=Vehicle.version"; + +        try (PreparedStatement pstmt = +                jdbcConnectionManager.getConnection().prepareStatement(sql)) {              pstmt.executeQuery();              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); -        } finally { -            if (pstmt != null) { -                try { -                    pstmt.close(); -                } catch (SQLException e) { -                    throw new PersistenceException( -                            "Verbindung zur Datenbank konnte nicht geschlossen werden!", e); -                } -            }          }          return result;      }  | 
