ciao a tutti in un mio progetto in java stò creando un UPDATE ad un database ma ho un problema...praticamente se dovessi modificare un solo row la modifica avviene su tutti i rows che ho inserito nella tabella!!!!!

questo è lo script:

codice:
salvaModifica.addActionListener(new ActionListener() {				
			public void actionPerformed(ActionEvent evt) {	
				String s1 = textNome.getText(); 
				String s2 = textBase.getText();
				String s3= textTesto.getText();
				if (s1.equals("")){
					JOptionPane.showMessageDialog(null, "Inserire il nome ", "Messaggio", JOptionPane.WARNING_MESSAGE);
				}else if (s2.equals("")){
					JOptionPane.showMessageDialog(null, "Inserire link della base", "Messaggio", JOptionPane.WARNING_MESSAGE);
				}else if (s3.equals("")){
					JOptionPane.showMessageDialog(null, "Inserire link del testo", "Messaggio", JOptionPane.WARNING_MESSAGE);
				}else {
				try {
					Class.forName("org.sqlite.JDBC");
				}
				catch (Exception exc) {
					System.out.println("Errore - Driver jdbc non presente: "+ exc.getMessage());
				}
				
				try {
					conn = DriverManager.getConnection("jdbc:sqlite:basi.sqlite");						
	
					
					String query = "UPDATE datasong SET nome=?, base=?, testo=? ";
					pstmt = (PreparedStatement) conn.prepareStatement(query); 
					pstmt.setString(1, s1); 
					pstmt.setString(2, s2);
					pstmt.setString(3, s3);
					pstmt.executeUpdate(); 
																	
					JOptionPane.showMessageDialog(null, "Base e Testo Modificati!", "Messaggio...",JOptionPane.INFORMATION_MESSAGE );							
					
					pstmt.close();
					conn.close();
					textNome.setText("");
					textBase.setText("");
					textTesto.setText("");
					}
				
					catch (Exception exc) {
						System.out.println("Errore: "+ exc.getMessage());
					} 
				}
			}	
		});
HELP!!!!!