Como recuperar dados de um banco de dados usando Java?

Recuperar dados de um banco de dados em Java envolve o uso de JDBC para executar consultas SQL e processar os resultados com ResultSet.

Como recuperar dados de um banco de dados usando Java?

Recuperar dados de um banco de dados em Java é uma operação essencial para aplicações que interagem com informações armazenadas. Para isso, utilizamos JDBC (Java Database Connectivity), que permite a execução de consultas SQL e a manipulação dos resultados.

1. Configurando a Conexão com o Banco

Antes de recuperar dados, precisamos estabelecer uma conexão com o banco de dados.

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;

public class ConexaoBanco {
    private static final String URL = "jdbc:mysql://localhost:3306/meubanco";
    private static final String USUARIO = "root";
    private static final String SENHA = "1234";

    public static Connection conectar() throws SQLException {
        return DriverManager.getConnection(URL, USUARIO, SENHA);
    }
}

Explicação: O método conectar() cria uma conexão com o banco de dados MySQL.

2. Executando uma Consulta SQL (SELECT)

Para recuperar dados, usamos PreparedStatement e ResultSet.

import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;

public class ConsultaBanco {
    public static void main(String[] args) {
        String sql = "SELECT id, nome, email FROM usuarios";

        try (Connection conexao = ConexaoBanco.conectar();
             PreparedStatement stmt = conexao.prepareStatement(sql);
             ResultSet rs = stmt.executeQuery()) {

            while (rs.next()) {
                int id = rs.getInt("id");
                String nome = rs.getString("nome");
                String email = rs.getString("email");

                System.out.println("ID: " + id + ", Nome: " + nome + ", Email: " + email);
            }
        } catch (SQLException e) {
            e.printStackTrace();
        }
    }
}

Explicação: O executeQuery() executa um SELECT e retorna um ResultSet, que percorremos para ler os valores das colunas.

3. Filtrando Dados com Parâmetros

Podemos usar WHERE para recuperar dados filtrados.

String sql = "SELECT * FROM usuarios WHERE email = ?";
try (PreparedStatement stmt = conexao.prepareStatement(sql)) {
    stmt.setString(1, "usuario@email.com");
    ResultSet rs = stmt.executeQuery();

    while (rs.next()) {
        System.out.println("Nome: " + rs.getString("nome"));
    }
}

Explicação: O ? define um parâmetro seguro, prevenindo SQL Injection.

4. Manipulando ResultSet

O ResultSet possui métodos úteis para trabalhar com os dados retornados:

Método Descrição
rs.getInt("coluna") Retorna um inteiro
rs.getString("coluna") Retorna uma string
rs.getDouble("coluna") Retorna um número decimal
rs.next() Move para o próximo registro

5. Boas Práticas ao Recuperar Dados

  • Sempre feche o ResultSet, PreparedStatement e Connection após o uso.
  • *Evite `SELECT `, prefira selecionar apenas as colunas necessárias**.
  • Use índices no banco para otimizar consultas.
  • Faça paginação de resultados para evitar sobrecarga.

Conclusão

A recuperação de dados em Java via JDBC é fundamental para aplicações que interagem com bancos de dados. O uso correto do PreparedStatement e ResultSet garante segurança e eficiência nas consultas SQL.

A manipulação de bancos de dados em Java é um dos pilares do desenvolvimento de sistemas. Desde aplicações simples até sistemas corporativos, a recuperação eficiente de dados é essencial para um bom desempenho. Implementar boas práticas na manipulação de consultas SQL evita problemas de segurança e melhora a experiência do usuário.

Algumas aplicações:

  • Exibição de dados dinâmicos em aplicações web
  • Gerenciamento de usuários e informações em sistemas
  • Integração com APIs que necessitam persistência de dados
  • Otimização de relatórios e estatísticas em tempo real

Dicas para quem está começando

  • Use PreparedStatement para evitar SQL Injection
  • Sempre feche ResultSet e Connection para evitar vazamento de memória
  • Prefira selecionar colunas específicas ao invés de SELECT *
  • Otimize consultas utilizando índices no banco de dados
  • Utilize paginação para evitar grandes cargas de dados no sistema

Contribuições de Rodrigo Farias

Compartilhe este tutorial: Como recuperar dados de um banco de dados usando Java

Compartilhe este tutorial

Continue aprendendo:

Como usar PreparedStatement em vez de Statement

O uso de PreparedStatement em vez de Statement em Java melhora a segurança contra SQL Injection e otimiza o desempenho das consultas SQL.

Tutorial anterior

Como inserir registros em um banco de dados com Java

A inserção de registros em um banco de dados com Java é feita via JDBC utilizando comandos SQL seguros com PreparedStatement.

Próximo tutorial