public void updateMusician(Musician m) { try { PreparedStatement stmt = conn.prepareStatement( "update musicians m set first_name = ?," + "last_name = ?, birthdate = ?, habitation_id = ?, password = ?", ResultSet.TYPE_FORWARD_ONLY, ResultSet.CONCUR_READ_ONLY); stmt.setString(1, m.getFirstName()); stmt.setString(2, m.getLastName()); stmt.setTimestamp(3, new java.sql.Timestamp(m.getBirthdate().getTime())); stmt.setInt(4, m.getHabitation().getId()); stmt.setString(5, m.getPassword()); stmt.executeUpdate(); // set instrument_skills stmt = conn.prepareStatement( "delete from instrument_skills where musician_id = ?", ResultSet.TYPE_FORWARD_ONLY, ResultSet.CONCUR_READ_ONLY); stmt.setInt(1, m.getId()); stmt.executeUpdate(); for (Instrument i : m.getSkills()) { stmt = conn.prepareStatement( "insert into instrument_skills values(?, ?)", ResultSet.TYPE_FORWARD_ONLY, ResultSet.CONCUR_READ_ONLY); stmt.setInt(1, m.getId()); stmt.setInt(2, i.getId()); stmt.executeUpdate(); } } catch (SQLException e) { e.printStackTrace(); } }