Java数据库操作入门:PostgreSQL与MongoDB

面向初学者的在线Python训练器

轻松学习Python,无需理论负担。在浏览器中直接解决带自动检查的实践任务,无需安装任何东西。

开始课程

在Java中处理数据库:面向初学者的PostgreSQL和MongoDB



现代Java开发很少能不涉及数据库交互。无论您是在创建Web应用程序、移动服务还是企业系统,掌握SQL和NoSQL数据库的使用能力都是一项必备技能。在本文中,我们将探讨如何从Java连接到PostgreSQL(关系型数据库)和MongoDB(文档型数据库),执行基本操作并避免常见错误。



本材料面向已经熟悉Java基础知识(类、方法、异常)并希望学习数据处理技能的初级开发者。所有代码示例均可复制并在您的开发环境中运行。



1. 环境准备与依赖项



要在Java中处理数据库,您需要添加相应的库。我们将使用Maven来管理依赖项。如果您使用Gradle或其他构建工具,原理类似。



PostgreSQL的依赖项(通过JDBC)

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


MongoDB的依赖项(官方驱动)

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


添加依赖项后,请更新项目(Maven → Reload Project)。确保您已经安装并启动了数据库本身(本地或通过Docker)。



2. 在Java中处理PostgreSQL



PostgreSQL是经典的关系型数据库。在Java中与之交互使用的是JDBC(Java数据库连接)。我们将介绍完整流程:连接、创建表、插入和读取数据。



2.1. 连接到数据库

创建一个PostgresConnector类,其中包含获取连接的方法:

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

public class PostgresConnector { private static final String URL = "jdbc:postgresql://localhost:5432/testdb"; private static final String USER = "postgres"; private static final String PASSWORD = "your_password";

public static Connection getConnection() throws SQLException { return DriverManager.getConnection(URL, USER, PASSWORD); }}


2.2. 创建表并插入数据

使用Statement和PreparedStatement执行SQL查询:

import java.sql.*;

public class PostgresExample { public static void main(String[] args) { String createTableSQL = "CREATE TABLE IF NOT EXISTS users (" + "id SERIAL PRIMARY KEY, " + "name VARCHAR(100) NOT NULL, " + "email VARCHAR(100) UNIQUE NOT NULL)";

String insertSQL = "INSERT INTO users (name, email) VALUES (?, ?)";

try (Connection conn = PostgresConnector.getConnection(); Statement stmt = conn.createStatement()) {

// 创建表 stmt.execute(createTableSQL); System.out.println("表 users 已创建(或已存在)。");

// 通过PreparedStatement插入数据(防止SQL注入) try (PreparedStatement pstmt = conn.prepareStatement(insertSQL)) { pstmt.setString(1, "伊万·彼得罗夫"); pstmt.setString(2, "ivan@example.com"); pstmt.executeUpdate(); System.out.println("用户已添加。"); }

} catch (SQLException e) { e.printStackTrac

博客

书籍推荐