@Override
    public void storeImage(Image image) {
        ResultSet rs = null;
        int ID = image.getID();
        if (ID > 0) { // update
            ///////////////////////////////////////////////////////////////
            // l'immagine già esiste ma non abbiamo dato la possibilità di editarla
            // le immagini si possono solo aggiungere e togliere
            //////////////////////////////////////////////////////////////
        } else { // insert
            try {
                // this.iImage = connection.prepareStatement("INSERT INTO image (URL, description, name, banner)", Statement.RETURN_GENERATED_KEYS);
                this.iImage.setString(1, image.getURL());
                this.iImage.setString(2, image.getDescription());
                this.iImage.setString(3, image.getName());
                this.iImage.setBoolean(4, image.isBanner());
                // abbiamo finito di compilare la query
                if (this.iImage.executeUpdate() == 1) {
                    rs = this.iImage.getGeneratedKeys();
                    if (rs.next()) {
                        ID = rs.getInt(1);
                    }
                }
                if (ID > 0) {
                    image.copyFrom(getImage(ID)); // aggiorno il post
                }
                image.setDirty(false); // dico che è pulito
            } catch (SQLException ex) {
                Logger.getLogger(SitoDataLayerMysqlImpl.class.getName()).log(Level.SEVERE, null, ex);
            } finally {
                if (rs != null) {
                    try {
                        rs.close();
                    } catch (SQLException ex) {
                        Logger.getLogger(SitoDataLayerMysqlImpl.class.getName()).log(Level.SEVERE, null, ex);
                    }
                }
            }
        }
    }