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.

Como inserir registros em um banco de dados com Java?

A inserção de registros em um banco de dados é uma operação essencial em aplicações Java que utilizam JDBC (Java Database Connectivity). Para realizar essa tarefa de forma segura, usamos PreparedStatement, evitando SQL Injection e melhorando a performance.

1. Configurando a Conexão com o Banco

Antes de inserir registros, precisamos estabelecer a 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: Esse método cria uma conexão com o banco de dados MySQL.

2. Inserindo Registros com PreparedStatement

A melhor prática para inserir dados no banco é usar PreparedStatement, pois ele permite consultas parametrizadas.

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

public class InsercaoBanco {
    public static void main(String[] args) {
        String sql = "INSERT INTO usuarios (nome, email) VALUES (?, ?)";

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

            stmt.setString(1, "João Silva");
            stmt.setString(2, "joao@email.com");

            int linhasAfetadas = stmt.executeUpdate();
            System.out.println("Registros inseridos: " + linhasAfetadas);
        } catch (SQLException e) {
            e.printStackTrace();
        }
    }
}

Explicação:

  • O ? representa um parâmetro seguro.
  • setString(1, "João Silva") substitui o primeiro ? pelo nome.
  • executeUpdate() executa a inserção e retorna o número de linhas afetadas.

3. Inserindo Múltiplos Registros

Para inserir vários registros de uma vez, reutilizamos o PreparedStatement.

String sql = "INSERT INTO usuarios (nome, email) VALUES (?, ?)";
try (PreparedStatement stmt = conexao.prepareStatement(sql)) {
    String[][] usuarios = {
        {"Maria Souza", "maria@email.com"},
        {"Carlos Lima", "carlos@email.com"}
    };

    for (String[] usuario : usuarios) {
        stmt.setString(1, usuario[0]);
        stmt.setString(2, usuario[1]);
        stmt.addBatch();
    }

    int[] resultados = stmt.executeBatch();
    System.out.println("Registros inseridos: " + resultados.length);
}

Explicação: addBatch() agrupa múltiplas execuções, tornando a inserção mais eficiente.

4. Lidando com Chaves Geradas Automaticamente

Se o banco gerar um ID automaticamente, podemos capturá-lo com RETURN_GENERATED_KEYS.

String sql = "INSERT INTO usuarios (nome, email) VALUES (?, ?)";
try (PreparedStatement stmt = conexao.prepareStatement(sql, Statement.RETURN_GENERATED_KEYS)) {
    stmt.setString(1, "Ana Paula");
    stmt.setString(2, "ana@email.com");
    stmt.executeUpdate();

    ResultSet chaves = stmt.getGeneratedKeys();
    if (chaves.next()) {
        System.out.println("ID gerado: " + chaves.getInt(1));
    }
}

Explicação: getGeneratedKeys() captura o ID gerado automaticamente pelo banco.

5. Boas Práticas ao Inserir Registros

  • Utilize PreparedStatement para evitar SQL Injection.
  • Feche sempre a conexão após o uso.
  • Prefira executeBatch() para inserções em massa.
  • Monitore logs de inserção para depuração e auditoria.

Conclusão

O uso do JDBC com PreparedStatement garante inserções seguras e eficientes no banco de dados. Técnicas como inserção em batch e captura de chaves geradas melhoram a performance e a experiência do desenvolvimento.

A inserção de dados em bancos relacionais é uma tarefa rotineira em aplicações empresariais. Sistemas de CRM, ERPs e lojas virtuais dependem de operações eficientes para armazenar informações de clientes, produtos e transações. Implementar boas práticas na manipulação de dados evita falhas e melhora a escalabilidade do sistema.

Algumas aplicações:

  • Armazenamento de usuários em sistemas web
  • Registro de transações em e-commerce
  • Cadastro de produtos e informações em sistemas ERP
  • Armazenamento de logs e eventos em aplicações empresariais

Dicas para quem está começando

  • Use PreparedStatement para garantir segurança na inserção
  • Evite concatenar strings diretamente nas queries SQL
  • Utilize executeBatch() para inserir múltiplos registros
  • Feche a conexão para evitar consumo desnecessário de recursos
  • Capture chaves geradas automaticamente ao inserir novos registros

Contribuições de Rodrigo Farias

Compartilhe este tutorial: Como inserir registros em um banco de dados com Java

Compartilhe este tutorial

Continue aprendendo:

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.

Tutorial anterior

Como atualizar registros em um banco de dados usando Java

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

Próximo tutorial