Sim, este 1 representa o índice da coluna. No caso vc estaria solicitando a primeira coluna.
Só que este índice nem sempre está relacionado com a posição da coluna no banco de dados.
Se no seu SELECT vc listar as colunas que vc quer, este índice estará relacionado com a posição em que a coluna aparece nesta lista. Por exemplo:
try (final PreparedStatement statement = conn.prepareStatement("SELECT * FROM cliente")) {
final ResultSet resultSet = statement.executeQuery();
if (resultSet.next()) {
System.out.println(resultSet.getInt(3));
}
}
O código acima retorna o resultado desejado, pois o asterisco traz as colunas na ordem em que foram criadas. Porém…
try (final PreparedStatement statement = conn.prepareStatement("SELECT id, cpf, nome FROM cliente")) {
final ResultSet resultSet = statement.executeQuery();
if (resultSet.next()) {
System.out.println(resultSet.getInt(3));
}
}
O código acima gera erro, pois é o nome que está na terceira posição da query e ele não pode ser convertido para int.
try (final PreparedStatement statement = conn.prepareStatement("SELECT nome FROM cliente")) {
final ResultSet resultSet = statement.executeQuery();
if (resultSet.next()) {
System.out.println(resultSet.getInt(3));
}
}
O código acima gera o erro que vc mencionou, pois eu estou trazendo apenas uma coluna, mas estou tentando acessar a terceira, isto é, estou tentando acessar o índice de uma coluna que não existe na query.
Por isso eu acredito que o problema pode estar em como vc montou seu SELECT.