Java 数据库操作入门
Java 是构建企业级应用最流行的语言之一,数据库操作是此类项目不可或缺的组成部分。在现代开发中,开发者经常需要在关系型和非关系型数据库之间做出选择。本文将详细介绍如何从 Java 连接并操作两种主流数据库系统:PostgreSQL(关系型数据库)和 MongoDB(文档型 NoSQL 数据库)。您将了解驱动程序配置、CRUD 操作执行以及最佳实践。
1. Java 中的 PostgreSQL 操作
PostgreSQL 是一款功能强大的开源对象关系型数据库。通过 JDBC(Java Database Connectivity) 驱动程序实现与 Java 的交互。
1.1 添加 PostgreSQL 驱动依赖
首先在项目中添加依赖(Maven):
<dependency> <groupId>org.postgresql</groupId> <artifactId>postgresql</artifactId> <version>42.7.1</version></dependency>1.2 建立连接并执行查询
连接本地服务器上 mydb 数据库的示例:
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()) {
// 创建表 stmt.executeUpdate("CREATE TABLE IF NOT EXISTS users (id SERIAL PRIMARY KEY, name VARCHAR(100), email VARCHAR(100))");
// 插入数据 stmt.executeUpdate("INSERT INTO users (name, email) VALUES ('Alice', 'alice@example.com')");
// 查询数据 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 使用 PreparedStatement
为防止 SQL 注入,始终使用 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. Java 中的 MongoDB 操作
MongoDB 是一种 NoSQL 数据库,以 JSON 格式文档存储数据。通过官方 MongoDB Java Driver 进行操作。
2.1 添加 MongoDB 驱动依赖
在 Maven 中添加依赖:
<dependency> <groupId>org.mongodb</groupId> <artifactId>mongodb-driver-sync</artifactId> <version>4.11.1</version></dependency>2.2 连接数据库并执行 CRUD 操作
操作 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) { // 连接 try (MongoClient mongoClient = MongoClients.create("mongodb://localhost:27017")) { MongoDatabase database = mongoClient.getDatabase("mydb"); MongoCollection<Document> collect