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)
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();
}
}
});
classe Dbmanager (si occupa di gestire il database e interrogazioni sql)
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;
}
sapreste gentilmente dirmi come risolvere l'errore che commetto?
grazie