Trabalho com bancos de dados em Java: PostgreSQL e MongoDB na prática

Treinador Online de Python para Iniciantes

Aprenda Python facilmente sem sobrecarga teórica. Resolva tarefas práticas com verificação automática e escreva código diretamente no navegador.

Start Course

Introdução: por que um desenvolvedor Java precisa conhecer PostgreSQL e MongoDB?

O desenvolvimento Java moderno raramente ocorre sem interação com bancos de dados. Os dois sistemas mais populares — o relacional PostgreSQL e o orientado a documentos MongoDB — cobrem 90% das tarefas de aplicações enterprise. O PostgreSQL é ideal para esquemas rígidos e sistemas transacionais, enquanto o MongoDB é ideal para estruturas de dados flexíveis e altas cargas de gravação.

Neste artigo, abordaremos exemplos práticos de conexão de ambos os bancos de dados a partir do Java, realizaremos operações CRUD básicas e compararemos as abordagens. O material será útil tanto para iniciantes quanto para desenvolvedores experientes que desejam atualizar seus conhecimentos.



1. PostgreSQL em Java: o clássico dos bancos relacionais

1.1. Conexão e configuração

Para trabalhar com PostgreSQL em Java, utiliza-se o driver org.postgresql:postgresql. Adicione a dependência no pom.xml (Maven):

<dependency>    <groupId>org.postgresql</groupId>    <artifactId>postgresql</artifactId>    <version>42.7.1</version></dependency>

A conexão via JDBC fica assim:

String url = "jdbc:postgresql://localhost:5432/mydb";String user = "postgres";String password = "secret";

try (Connection conn = DriverManager.getConnection(url, user, password)) { System.out.println("Conexão com PostgreSQL estabelecida!");} catch (SQLException e) { e.printStackTrace();}


1.2. Operações CRUD na prática

Vamos criar a tabela users e realizar operações básicas:

// Criação da tabelaString createSQL = """    CREATE TABLE IF NOT EXISTS users (        id SERIAL PRIMARY KEY,        name VARCHAR(100),        email VARCHAR(100) UNIQUE,        age INTEGER    )""";

try (Statement stmt = conn.createStatement()) { stmt.execute(createSQL); System.out.println("Tabela criada");}

// INSERTString insertSQL = "INSERT INTO users (name, email, age) VALUES (?, ?, ?)";try (PreparedStatement pstmt = conn.prepareStatement(insertSQL)) { pstmt.setString(1, "Ivan Petrov"); pstmt.setString(2, "ivan@example.com"); pstmt.setInt(3, 30); pstmt.executeUpdate();}

// SELECTString selectSQL = "SELECT * FROM users WHERE age > ?";try (PreparedStatement pstmt = conn.prepareStatement(selectSQL)) { pstmt.setInt(1, 25); ResultSet rs = pstmt.executeQuery(); while (rs.next()) { System.out.printf("ID: %d, Nome: %s, Email: %s%n", rs.getInt("id"), rs.getString("name"), rs.getString("email")); }}

Importante: Sempre use PreparedStatement para proteção contra injeção de SQL.



2. MongoDB em Java: flexibilidade do modelo documental

2.1. Conexão via MongoDB Sync Driver

Adicione no pom.xml:

<dependency>    <groupId>org.mongodb</groupId>    <artifactId>mongodb-driver-sync</artifactId>    <version>4.11.1</version></dependency>

Conexão ao MongoDB local:

import com.mongodb.client.MongoClients;import com.mongodb.client.MongoClient;import com.mongodb.client.MongoDatabase;

MongoClient mongoClient = MongoClients.create("mongodb://localhost:27017");MongoDatabase database = mongoClient.getDatabase("mydb");System.out.println("Conexão com MongoDB estabelecida");


2.2. Operações CRUD com documentos

Trabalhando com a coleção users:

import com.mongodb.client.MongoCollection;import org.bson.Document;import static com.mongodb.client.model.Filters.*;

MongoCollection<Document> collection = database.getCollection("users");

// CREATE — inserção de documentoDocument user = new Document("name", "Anna Smith

Blogs

Book Recommendations