Вашият проблем е, че подготвяте изявлението с
preparedStatement = dbConnection.prepareStatement(selectSQL);
което е правилно, но след това, когато се опитате да изпълните PreparedStatement, вие предоставяте selectSQL
низ отново:
rs = preparedStatement.executeQuery(selectSQL);
Това е неправилно. Вече сте подготвили изявлението, така че когато дойде време да го изпълните, просто го правите
rs = preparedStatement.executeQuery();