📊 Capítulo 17: Acesso a Dados com JDBC
Especialização em Sistemas com Java
🗺️ O Fluxo de Execução Transacional com JDBC
sequenceDiagram
autonumber
actor APP as Aplicação Java (DAO)
participant CONN as Connection (conn.setAutoCommit(false))
participant STMT as PreparedStatement (Query Parametrizada)
participant DB as Banco de Dados Relacional (PostgreSQL / MySQL)
APP->>CONN: Prepara transação atômica
APP->>STMT: stmt.setString(1, "Ana") e stmt.setDouble(2, 5000.0)
STMT->>DB: executeUpdate()
DB-->>STMT: 1 linha afetada
Note over APP,CONN: Se tudo ocorrer com sucesso:
APP->>CONN: conn.commit() (Persiste permanentemente!) ⚡
Note over APP,CONN: Se ocorrer SQLException:
APP->>CONN: conn.rollback() (Desfaz todas as alterações com segurança!)
🎯 Slide 1: Por Que o PreparedStatement é Mandatório?
-
Proteção Absoluta contra SQL Injection: Os valores dos parâmetros nunca são concatenados como SQL; são enviados como tipos de dados puros diretamente ao banco.
- Performance: O plano de execução da query é pré-compilado e reutilizado pelo SGBD.
🎯 Slide 2: O Padrão Data Access Object (DAO)
- Encapsula todas as operações de banco (
inserir,atualizar,deletar,buscarPorId,listarTodos) em interfaces limpas, isolando a regra de negócio do código SQL!
🎯 Slide 3: Fechamento Seguro de Recursos
- Conexões, Statements e ResultSets devem ser sempre fechados usando
try-with-resourcespara não esgotar o pool de conexões do banco de dados!
Slide 1 de 1
Atalhos: ← → Navegar • Espaço Avançar • F Tela Cheia • Home Início • End Fim