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
Leia também