Operações com Banco de Dados MySQL Utilizando Java

Manipulação de Banco de Dados e Tabelas em Java

1. Estabelecendo Conexão e Criando Banco de Dados

O processo para criar um banco de dados MySQL através de Java envolve as seguintes etapas:

  • Carregar o driver JDBC do MySQL
  • Estabelecer conexão com o servidor
  • Execuatr comando SQL para criação do banco
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.Statement;
import java.sql.SQLException;

public class DbCreationDemo {
    public static void main(String[] args) {
        String servidor = "jdbc:mysql://localhost:3306/";
        String usuario = "admin";
        String senha = "senha123";
        
        Connection conn = null;
        Statement stmt = null;
        
        try {
            conn = DriverManager.getConnection(servidor, usuario, senha);
            stmt = conn.createStatement();
            
            String query = "CREATE DATABASE IF NOT EXISTS sistema_vendas";
            stmt.executeUpdate(query);
            System.out.println("Banco de dados criado com sucesso!");
        } catch (SQLException e) {
            System.err.println("Erro ao criar banco: " + e.getMessage());
        } finally {
            try {
                if (stmt != null) stmt.close();
                if (conn != null) conn.close();
            } catch (SQLException e) {
                e.printStackTrace();
            }
        }
    }
}

2. Realizando Consultas no Banco de Dados

Para executar consultas SQL e recuperar dados, utilize o método executeQuery() do Statement:

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

public class DataQueryDemo {
    public static void main(String[] args) {
        String url = "jdbc:mysql://localhost:3306/sistema_vendas";
        String user = "admin";
        String pass = "senha123";
        
        try (Connection conn = DriverManager.getConnection(url, user, pass);
             Statement st = conn.createStatement()) {
            
            String sql = "SELECT id, nome, preco FROM produtos WHERE quantidade > 0";
            ResultSet rs = st.executeQuery(sql);
            
            while (rs.next()) {
                int codigo = rs.getInt("id");
                String nome = rs.getString("nome");
                double valor = rs.getDouble("preco");
                System.out.println("Produto: " + codigo + " - " + nome + " = R$ " + valor);
            }
            rs.close();
        } catch (SQLException e) {
            e.printStackTrace();
        }
    }
}

3. Procedures de Backup e Restore

Para realizar backup e restauarção de banco de dados MySQL, utiliza-se a ferramenta mysqldump através de comandos do sistema:

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.Statement;
import java.sql.SQLException;
import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;

public class DatabaseBackupDemo {
    public static void main(String[] args) {
        String url = "jdbc:mysql://localhost:3306/";
        String user = "admin";
        String pass = "senha123";
        
        LocalDateTime agora = LocalDateTime.now();
        DateTimeFormatter formato = DateTimeFormatter.ofPattern("yyyyMMdd_HHmmss");
        String timestamp = agora.format(formato);
        
        System.out.println("Iniciando backup... Timestamp: " + timestamp);
        
        try (Connection conn = DriverManager.getConnection(url, user, pass);
             Statement st = conn.createStatement()) {
            
            // Nota: MySQL usa mysqldump para backup via linha de comando
            String comando = "BACKUP TABLE sistema_vendas.produtos TO 'C:/backups/bd_" + timestamp + "'";
            st.execute(comando);
            System.out.println("Backup realizado com sucesso!");
        } catch (SQLException e) {
            System.err.println("Falha no backup: " + e.getMessage());
        }
    }
}

4. Criação de Tabelas

A criação de tabelas segue o padrão SQL padrão, definindo colunas e tipos de dados:

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

public class TableCreationDemo {
    public static void main(String[] args) {
        String connectionUrl = "jdbc:mysql://localhost:3306/sistema_vendas";
        String user = "admin";
        String password = "senha123";
        
        Connection conexao = null;
        Statement comando = null;
        
        try {
            conexao = DriverManager.getConnection(connectionUrl, user, password);
            comando = conexao.createStatement();
            
            String criarTabela = """
                CREATE TABLE IF NOT EXISTS clientes (
                    id INT AUTO_INCREMENT PRIMARY KEY,
                    nome VARCHAR(100) NOT NULL,
                    email VARCHAR(150) UNIQUE,
                    telefone VARCHAR(20),
                    data_cadastro TIMESTAMP DEFAULT CURRENT_TIMESTAMP
                )
            """;
            
            comando.executeUpdate(criarTabela);
            System.out.println("Tabela 'clientes' criada com sucesso!");
            
        } catch (SQLException e) {
            System.out.println("Erro ao criar tabela: " + e.getMessage());
        } finally {
            try {
                if (comando != null) comando.close();
                if (conexao != null) conexao.close();
            } catch (SQLException e) {
                e.printStackTrace();
            }
        }
    }
}

5. Modificação de Estrutura de Tabelas

O comando ALTER TABLE permite adicionar, remover ou modificar colunas:

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

public class TableModificationDemo {
    public static void main(String[] args) {
        String dbUrl = "jdbc:mysql://localhost:3306/sistema_vendas";
        String dbUser = "admin";
        String dbPass = "senha123";
        
        try (Connection conn = DriverManager.getConnection(dbUrl, dbUser, dbPass);
             Statement stmt = conn.createStatement()) {
            
            // Adicionar nova coluna
            String alterarTabela = "ALTER TABLE clientes ADD COLUMN cpf VARCHAR(14) AFTER nome";
            stmt.executeUpdate(alterarTabela);
            System.out.println("Coluna 'cpf' adicionada à tabela clientes");
            
            // Modificar coluna existente
            String modificarColuna = "ALTER TABLE clientes MODIFY COLUMN telefone VARCHAR(15)";
            stmt.executeUpdate(modificarColuna);
            System.out.println("Coluna 'telefone' modificada");
            
            // Adicionar índice
            String adicionarIndice = "ALTER TABLE clientes ADD INDEX idx_cpf (cpf)";
            stmt.executeUpdate(adicionarIndice);
            System.out.println("Índice criado com sucesso");
            
        } catch (SQLException e) {
            System.err.println("Erro na modificação: " + e.getMessage());
        }
    }
}

Estas operações formam a base para manipulação de dados relacionais em aplicações Java, permitindo integração completa com bancos de dados MySQL através da API JDBC.

Tags: java jdbc MySQL database SQL

Publicado em 6-1 10:21 por Thomas