Java 数据库操作入门
现代 Java 开发几乎离不开与存储系统的交互。在关系型 (SQL) 和非关系型 (NoSQL) 数据库之间做出选择是一项关键的架构任务。本文将以 PostgreSQL(经典关系型数据库管理系统)和 MongoDB(文档型 NoSQL 数据库)为例,讲解主要方法、最佳实践,并提供现成的代码示例。无论您是初学者还是希望系统化知识的有经验开发者,本文都将对您有所帮助。
1. 在 Java 中连接和操作 PostgreSQL
1.1 配置 JDBC 驱动
PostgreSQL 是最流行的关系型数据库之一。在 Java 中操作它需要使用 JDBC 驱动。在 pom.xml (Maven) 中添加依赖:
<dependency> <groupId>org.postgresql</groupId> <artifactId>postgresql</artifactId> <version>42.6.0</version></dependency>添加驱动后,即可建立连接:
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("已成功连接到 PostgreSQL!"); } catch (SQLException e) { e.printStackTrace(); } }}1.2 CRUD 操作 (创建、读取、更新、删除)
我们来看一个操作 users 表的例子。创建记录:
String insertSQL = "INSERT INTO users (name, email) VALUES (?, ?)";try (PreparedStatement pstmt = conn.prepareStatement(insertSQL)) { pstmt.setString(1, "伊万·彼得罗夫"); pstmt.setString(2, "ivan@example.com"); pstmt.executeUpdate();}读取数据:
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")); }}更新和删除操作类似,通过 UPDATE 和 DELETE 语句结合 PreparedStatement 执行。始终使用参数化查询——这可以防止 SQL 注入攻击。
1.3 使用连接池 (HikariCP)
在生产环境中,不建议为每个请求都打开一个新连接。请使用连接池。添加依赖:
<dependency> <groupId>com.zaxxer</groupId> <artifactId>HikariCP</artifactId> <version>5.0.1</version></dependency>配置:
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. 在 Java 中连接和操作 MongoDB
2.1 配置 MongoDB Java 驱动
MongoDB 以类似 JSON 的文档格式存储数据。操作它需要使用官方驱动。Maven 依赖:
<dependency> <groupId>org.mongodb</groupId> <artifactId>mongodb-driver-sync</artifactId> <version>4.10.2</version></dependency>连接到本地数据库:
博客
书籍推荐
推荐阅读