Junior
Qual é o papel do objeto ResultSet ao trabalhar com bancos de dados usando JDBC?
sobes.tech IA
Resposta da IA
O objeto ResultSet representa uma visualização tabular dos dados obtidos como resultado da execução de uma consulta SQL. Permite iterar sobre as linhas deste resultado e obter os valores das colunas para cada linha.
Funções principais:
- Acesso aos dados: Permite obter os valores dos campos (colunas) da linha atual usando vários métodos
get<tipoDeDados>()(por exemplo,getInt(),getString(),getDate()). - Iteração: Fornece métodos para navegar pelas linhas do resultado (
next(),previous(),first(),last(),absolute()). - Informação sobre metadados: Através do método
getMetaData(), pode-se obterResultSetMetaData, um objeto que fornece informações sobre a estrutura doResultSet, como o número de colunas, seus tipos, nomes, etc. - Atualização de dados: Dependendo do tipo de
ResultSete das capacidades do driver, pode suportar métodos para atualizar, inserir ou eliminar linhas diretamente no resultado da consulta (por exemplo,updateRow(),insertRow(),deleteRow()).
Ciclo de vida:
ResultSeté criado após a execução de uma consulta SQL por um objetoStatementouPreparedStatement.- É utilizado para processar os dados.
- Após terminar, o
ResultSetdeve ser fechado para liberar recursos da base de dados. Isso pode ser feito explicitamente com o métodoclose()ou usando try-with-resources.
// Exemplo de uso de ResultSet
import java.sql.*;
public class ResultSetExample {
public static void main(String[] args) {
String dbUrl = "jdbc:mysql://localhost:3306/mydatabase"; // URL do banco de dados
String user = "myuser"; // Utilizador do banco de dados
String password = "mypassword"; // Palavra-passe do utilizador
String sql = "SELECT id, name, age FROM employees"; // Exemplo de consulta SQL SELECT
try (Connection conn = DriverManager.getConnection(dbUrl, user, password); // Estabelecer ligação
Statement stmt = conn.createStatement(); // Criar objeto Statement
ResultSet rs = stmt.executeQuery(sql)) { // Executar consulta e obter ResultSet
// Iterar pelas linhas do ResultSet
while (rs.next()) {
int id = rs.getInt("id"); // Obter valor da coluna "id"
String name = rs.getString("name"); // Obter valor da coluna "name"
int age = rs.getInt("age"); // Obter valor da coluna "age"
System.out.println("ID: " + id + ", Name: " + name + ", Age: " + age); // Exibir dados
}
} catch (SQLException e) {
e.printStackTrace(); // Gerir erros
}
}
}