Java数据库入门:PostgreSQL与MongoDB

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

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

开始课程

Java数据库入门:PostgreSQL与MongoDB

\n\n

在现代Java开发中,掌握数据库操作是一项关键技能。无论您是在开发Web应用程序、移动服务还是企业系统,都需要存储、检索和处理数据。本文将介绍两种流行的数据库管理系统:关系型PostgreSQL和文档型MongoDB。您将学习如何从Java应用程序连接它们、执行基本操作,并了解在何种情况下选择哪种技术。本文面向初学者,所有代码示例都尽可能简单并附有注释。

\n\n

1. Java中PostgreSQL的基础操作

\n\n

PostgreSQL是一款功能强大的开源对象关系型数据库管理系统。通过JDBC(Java数据库连接)驱动程序实现与Java的交互。下面逐步介绍连接和查询执行过程。

\n\n

1.1. 驱动连接与配置

\n\n

首先,需要在项目中添加依赖。如果使用Maven,请在pom.xml中添加以下内容:

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

对于Gradle,请在build.gradle中添加:

\n\n
implementation 'org.postgresql:postgresql:42.7.1'
\n\n

1.2. 创建表并插入数据

\n\n

假设我们有一个名为testdb的数据库,用户名为user,密码为pass。创建一个简单的users表并添加几条记录。

\n\n
import java.sql.*;\n\npublic class PostgresExample {\n    public static void main(String[] args) {\n        String url = "jdbc:postgresql://localhost:5432/testdb";\n        String user = "user";\n        String password = "pass";\n\n        try (Connection conn = DriverManager.getConnection(url, user, password);\n             Statement stmt = conn.createStatement()) {\n\n            // 创建表\n            String createTableSQL = "CREATE TABLE IF NOT EXISTS users (" +\n                                    "id SERIAL PRIMARY KEY, " +\n                                    "name VARCHAR(100) NOT NULL, " +\n                                    "email VARCHAR(100) UNIQUE)";\n            stmt.executeUpdate(createTableSQL);\n            System.out.println("表已创建或已存在。");\n\n            // 插入数据\n            String insertSQL = "INSERT INTO users (name, email) VALUES " +\n                               "('伊万·彼得罗夫', 'ivan@example.com'), " +\n                               "('玛丽亚·斯米尔诺娃', 'maria@example.com')";\n            int rowsInserted = stmt.executeUpdate(insertSQL);\n            System.out.println("已插入行数:" + rowsInserted);\n\n        } catch (SQLException e) {\n            e.printStackTrace();\n        }\n    }\n}
\n\n

1.3. 使用PreparedStatement读取数据

\n\n

为了安全地处理用户输入,请使用PreparedStatement。这可以防止SQL注入攻击。

\n\n
String selectSQL = "SELECT * FROM users WHERE name LIKE ?";\ntry (PreparedStatement pstmt = conn.prepareStatement(selectSQL)) {\n    pstmt.setString(1, "%伊万%");\n    ResultSet rs = pstmt.executeQuery();\n\n    while (rs.next()) {\n        int id = rs.getInt("id");\n        String name = rs.getString("name");\n        String email = rs.getString("email");\n        System.out.println("ID: " + id + ", 姓名: " + name + ", 邮箱: " + email);\n    }\n} catch (SQLException e) {\n    e.printStackTrace();\n}
\n\n

如您所见,Java中PostgreSQL的操作非常标准且文档齐全。

博客

书籍推荐