Puoi agire in due modi:

1) Per eseguire la query utilizzare i PreparedStatement che risolvono automaticamente problemi del genere anzichè gli Statement (soluzione consigliata).

2) Eseguire un replace dei caratteri speciali sulla stringa che rappresenta la query. Ad esempio:

codice:
String cognome = "d'amico";
//occorre sostituire l'apice con un doppio apice affinchè la stringa sql sia valida
String query = "select * from utenti where cognome = '"+cognome.replaceAll("'","''")+"'";