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.