Ditt problem är att du förbereder uttalandet med
preparedStatement = dbConnection.prepareStatement(selectSQL);
vilket är korrekt, men när du sedan försöker köra PreparedStatement anger du selectSQL
sträng igen:
rs = preparedStatement.executeQuery(selectSQL);
Det är felaktigt. Du har redan förberett uttalandet, så när det är dags att utföra det gör du bara
rs = preparedStatement.executeQuery();