Introdução ao trabalho com bancos de dados em Java
Java é uma das linguagens mais populares para criar aplicações corporativas, e o trabalho com bancos de dados (BD) é uma parte essencial desses projetos. No mundo moderno, os desenvolvedores frequentemente enfrentam a escolha entre bancos de dados relacionais e não relacionais. Neste artigo, vamos detalhar como conectar e trabalhar com dois sistemas populares: PostgreSQL (BD relacional) e MongoDB (BD NoSQL orientado a documentos) a partir do Java. Você aprenderá sobre configuração de drivers, execução de operações CRUD e melhores práticas.
1. Trabalhando com PostgreSQL em Java
PostgreSQL é um poderoso banco de dados objeto-relacional de código aberto. Para interagir com ele a partir do Java, utiliza-se o driver JDBC (Java Database Connectivity).
1.1 Conectando o driver PostgreSQL
Para começar, adicione a dependência ao seu projeto (Maven):
<dependency> <groupId>org.postgresql</groupId> <artifactId>postgresql</artifactId> <version>42.7.1</version></dependency>1.2 Estabelecendo conexão e executando consultas
Exemplo de conexão ao banco de dados mydb no servidor local:
import java.sql.Connection;import java.sql.DriverManager;import java.sql.ResultSet;import java.sql.Statement;
public class PostgresExample { public static void main(String[] args) { String url = "jdbc:postgresql://localhost:5432/mydb"; String user = "postgres"; String password = "password";
try (Connection conn = DriverManager.getConnection(url, user, password); Statement stmt = conn.createStatement()) {
// Criando tabela stmt.executeUpdate("CREATE TABLE IF NOT EXISTS users (id SERIAL PRIMARY KEY, name VARCHAR(100), email VARCHAR(100))");
// Inserindo dados stmt.executeUpdate("INSERT INTO users (name, email) VALUES ('Alice', 'alice@example.com')");
// Selecionando dados ResultSet rs = stmt.executeQuery("SELECT * FROM users"); while (rs.next()) { System.out.println("ID: " + rs.getInt("id") + ", Name: " + rs.getString("name")); } } catch (Exception e) { e.printStackTrace(); } }}1.3 Usando PreparedStatement
Para proteção contra injeção de SQL, sempre use PreparedStatement:
String sql = "INSERT INTO users (name, email) VALUES (?, ?)";try (PreparedStatement pstmt = conn.prepareStatement(sql)) { pstmt.setString(1, "Bob"); pstmt.setString(2, "bob@example.com"); pstmt.executeUpdate();}2. Trabalhando com MongoDB em Java
MongoDB é um banco de dados NoSQL que armazena dados em documentos semelhantes a JSON. Para trabalhar com ele, utiliza-se o MongoDB Java Driver oficial.
2.1 Conectando o MongoDB Driver
Adicione a dependência no Maven:
<dependency> <groupId>org.mongodb</groupId> <artifactId>mongodb-driver-sync</artifactId> <version>4.11.1</version></dependency>2.2 Conectando ao banco de dados e operações CRUD
Exemplo de trabalho com a coleção users:
import com.mongodb.client.MongoClient;import com.mongodb.client.MongoClients;import com.mongodb.client.MongoCollection;import com.mongodb.client.MongoDatabase;import org.bson.Document;
public class MongoDBExample { public static void main(String[] args) { // Conectando try (MongoClient mongoClient = MongoClients.create("mongodb://localhost:27017")) { MongoDatabase database = mongoClient.getDatabase("mydb"); MongoCollection<Document> collect