Sto realizzando un'applicazione java che crea una playlist musicale a partire dalla directory musicale presente sul proprio disco.
In una playlist posso avere la stessa canzone più volte ripetuta.
ad esempio posso avere la seguente playlist:
1 ligabue certe notti
2 vasco siamo soli
3 renga amore racconta
4 ligabue certe notti
nel momento in cui decido di cancellare la canzone alla posizione 4, l'output diventa il seguente:
1 vasco siamo soli
2 renga amore racconta
praticamente mi cancella tutte le canzoni "doppie" che trova e invece vorrei che il mio output fosse:
1 ligabue certe notti
2 vasco siamo soli
3 renga amore racconta
vi posto alcuni pezzi di codice per cercare di farmi aiutare a capire dove sta l'errore:
classe Playlistpanel(che si occupa di interfacciare java al database)
classe Dbmanager (si occupa di gestire il database e interrogazioni sql)codice:MyButton remove = new MyButton("Rimuovi file selezionati", new ImageIcon("resources/no.png")); remove.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { try { int[] rows = table.getSelectedRows(); for (int i = 0; i < rows.length; i++) { int row = rows[i]; if (row == pos) pos = -1; else if (row < pos) pos--; String key_mp3 = table.getModel().getValueAt(row, 1) + ""; DBManager.deleteFileFromPlaylist(key_mp3, key); } refresh(); } catch (SQLException e1) { e1.printStackTrace(); } } });
sapreste gentilmente dirmi come risolvere l'errore che commetto?codice:public static void deleteFileFromPlaylist(String key_mp3, String key_playlist) throws SQLException { stat.executeUpdate("DELETE FROM PLAYLIST_MP3 where key_mp3=" + key_mp3 + " AND key_playlist=" + key_playlist); } public static Vector<Vector<String>> getPlaylist(String key) throws SQLException { Vector<Vector<String>> ret = new Vector<Vector<String>>(); ResultSet resultSet = stat.executeQuery("SELECT * FROM PLAYLIST_MP3 JOIN MP3 ON(KEY_MP3=MP3.KEY) WHERE KEY_PLAYLIST=" + key + " ORDER BY pos"); while (resultSet.next()) { Vector<String> vector = new Vector<String>(); vector.addElement(resultSet.getString("name")); vector.addElement(resultSet.getString("key")); vector.addElement(resultSet.getString("path")); vector.addElement(resultSet.getString("artist")); vector.addElement(resultSet.getString("album")); vector.addElement(resultSet.getString("title")); vector.addElement(resultSet.getString("time")); vector.addElement((resultSet.getInt("pos") + 1) + ""); ret.add(vector); } System.out.println("ret = " + ret); return ret; }
grazie

Rispondi quotando