Persistência é a capacidade de um sistema de armazenar dados de forma duradoura, mesmo após o encerramento do programa. A forma mais comum de conseguir isso em aplicações Java é usando um Banco de Dados Relacional (SGBDR). Neste capítulo, vamos explorar como conectar e interagir com bancos de dados, focando em dois dos SGBDRs mais populares: PostgreSQL e MySQL.



💾 O Que é Persistência de Dados?

Pense em um aplicativo de lista de tarefas. Se você adiciona uma tarefa e, ao fechar o aplicativo, ela desaparece, ele não é muito útil, certo? A persistência garante que seus dados (como as tarefas da sua lista) sejam salvos em algum lugar (um arquivo, um banco de dados) e possam ser recuperados quando o aplicativo for iniciado novamente.

Um Sistema Gerenciador de Banco de Dados Relacional (SGBDR) é um software que permite criar, acessar e gerenciar bancos de dados. Ele armazena dados em tabelas, que são organizadas em linhas e colunas, e essas tabelas podem ser relacionadas entre si.


Por Que Usar Bancos de Dados para Persistência?

Motivos:


🌐 JDBC: A Ponte Java para Bancos de Dados

Para que uma aplicação Java possa "conversar" com um banco de dados, ela precisa de uma interface padrão. Essa interface é o JDBC (Java Database Connectivity).

O JDBC é uma API (Application Programming Interface) que fornece um conjunto de classes e interfaces para conectar-se a diferentes SGBDRs (como MySQL, PostgreSQL, Oracle, SQL Server, etc.) de forma unificada. Ele atua como um "tradutor" entre o seu código Java e o banco de dados.

Componentes Chave do JDBC:

  1. Driver JDBC: Um software específico para cada tipo de banco de dados que implementa as interfaces JDBC. Você precisa adicioná-lo ao seu projeto Java (geralmente como um arquivo .jar).
  2. Connection: Representa uma sessão de comunicação com o banco de dados.
  3. Statement / PreparedStatement: Usados para enviar comandos SQL (linguagem de consulta estruturada) ao banco de dados. PreparedStatement é preferível para segurança (evita SQL Injection) e performance.
  4. ResultSet: Usado para armazenar os resultados de uma consulta SELECT do banco de dados.

🐘 PostgreSQL e MySQL: Gigantes Relacionais

PostgreSQL:

MySQL:

Ambos são excelentes escolhas, e a lógica de conexão JDBC será muito similar para ambos, mudando principalmente a URL de conexão e o driver JDBC.