Estou fazendo uma consulta a um banco de dados PostGre, em uma tabela que eu sei que (por enquanto) está com 16 dados. O problema é que meu ResultSet está voltando vazio… Tentei dar uma olhada nas outras postagens aqui no fórum e na internet, mas não consegui encontrar nada que resolvesse.
O acesso ao banco de dados é feito da seguinte maneira:
public static Connection getConnection() {
Connection connection = null; //atributo do tipo Connection
try {
// Carregando o JDBC Driver padrão
String driverName = "org.postgresql.Driver";
Class.forName(driverName);
//Concatena a string de conexão em uma url
String url = "jdbc:postgresql://"+sServer+":"+sPort+"/"+sDatabase;
//Solicita conexão com o banco de dados
connection = DriverManager.getConnection(url, sUser, sPassword);
//Testa sua conexão//
if (connection != null) {
status = ("Connected");
} else {
status = ("Disconnected");
}
return connection;
} catch ( ClassNotFoundException | SQLException e) {
status = (e.getMessage());
return null;
}
}
e a query de consulta ao banco de dados pode ser vista abaixo:
public static String[][] listRawStudent()
{
//Gera array de retorno
String[][] returnArray;
try
{
//Conecta com o banco de dados
Connection conn;
conn = clDataBase.getConnection();
//Cria statement e a string de conexão
Statement stmt = conn.createStatement();
//Inicia ResultSet
ResultSet rs;
rs = stmt.executeQuery("select guest_id, guest_name from guest");
//Para poder iniciar o array de retorno, move o ponteiro do
//ResultSet para o final
rs.last();
//Pega o valor da última linha
int linhas = rs.getRow();
//Inicializa a variável de retorno
returnArray = new String[16][2];
//Retorna o ponteiro para o início
rs.first();
//Inicializa um contador
int contador = 0;
while(rs.next()) //enquanto existe uma proxima linha
{
//Adiciona dados para o array
returnArray[contador][0] = rs.getString("id");
returnArray[contador][1] = rs.getString("name");
contador ++;
}
}
catch(SQLException e)
{
status = (e.getMessage());
returnArray = new String[0][0];
}
//Fecha a conexão
closeConexao();
return returnArray;
}
O array de retorno volta null em todas as consultas… Por sua vez, o erro retornado pelo Java é o seguinte:
Exception in thread “main” java.lang.ArrayIndexOutOfBoundsException: 1 at testcampus.TestCampus.main(TestCampus.java:21) C:\Users\tiago\AppData\Local\NetBeans\Cache\8.2\executor-snippets\run.xml:53: Java returned: 1 FALHA NA CONSTRUÇÃO (tempo total: 2 segundos)
Alguma ideia ou sugestão sobre o que está ocorrendo?