Trabalho com bancos de dados em Java: PostgreSQL e MongoDB

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 ao trabalho com bancos de dados em Java



O desenvolvimento moderno em Java raramente ocorre sem interação com sistemas de armazenamento de dados. A escolha entre bancos de dados relacionais (SQL) e não relacionais (NoSQL) é uma das principais tarefas arquiteturais. Neste artigo, usando PostgreSQL (SGBD relacional clássico) e MongoDB (NoSQL orientado a documentos) como exemplos, abordaremos as principais abordagens, melhores práticas e forneceremos exemplos de código prontos. O material será útil tanto para iniciantes quanto para desenvolvedores experientes que desejam sistematizar seus conhecimentos.



1. Conexão e trabalho com PostgreSQL em Java



1.1 Configuração do driver JDBC



PostgreSQL é um dos bancos de dados relacionais mais populares. Para trabalhar com ele a partir do Java, utiliza-se o driver JDBC. Adicione a dependência no pom.xml (Maven):



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


Após adicionar o driver, é possível estabelecer a conexão:



import java.sql.Connection;import java.sql.DriverManager;import java.sql.SQLException;

public class PostgresConnection { public static void main(String[] args) { String url = "jdbc:postgresql://localhost:5432/mydb"; String user = "admin"; 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 (Create, Read, Update, Delete)



Vamos considerar um exemplo de trabalho com a tabela users. Criando um registro:



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


Leitura de dados:



String selectSQL = "SELECT * FROM users WHERE id = ?";try (PreparedStatement pstmt = conn.prepareStatement(selectSQL)) {    pstmt.setInt(1, 1);    ResultSet rs = pstmt.executeQuery();    while (rs.next()) {        System.out.println(rs.getString("name") + " - " + rs.getString("email"));    }}


Atualização e exclusão são realizadas de forma semelhante usando UPDATE e DELETE com PreparedStatement. Sempre use consultas parametrizadas — isso protege contra injeção de SQL.



1.3 Uso de pool de conexões (HikariCP)



Em produção, não é recomendado abrir uma nova conexão para cada requisição. Use um pool de conexões. Adicione a dependência:



<dependency>    <groupId>com.zaxxer</groupId>    <artifactId>HikariCP</artifactId>    <version>5.0.1</version></dependency>


Configuração:



HikariConfig config = new HikariConfig();config.setJdbcUrl("jdbc:postgresql://localhost:5432/mydb");config.setUsername("admin");config.setPassword("secret");config.setMaximumPoolSize(10);

HikariDataSource ds = new HikariDataSource(config);Connection conn = ds.getConnection();


2. Conexão e trabalho com MongoDB em Java



2.1 Configuração do MongoDB Java Driver



MongoDB armazena dados em formato de documentos semelhantes a JSON. Para trabalhar com ele, utiliza-se o driver oficial. Dependência Maven:



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


Conexão com o banco de dados local:





                
                

Blogs

Book Recommendations