Java连接PostgreSql数据库及基本使用方式

Java连接PostgreSql数据库及基本使用方式攻略

简介

PostgreSQL(常简称 Postgres)是一个高度自定的开源关系数据库管理系统。PostgreSQL 支持多种编程语言,包含 Java。通过 JDBC 驱动可以把 Java 和 PostgreSQL 集成,完成数据交流。

步骤

1. 导入JDBC驱动

在项目中添加 PostgreSQL JDBC 驱动,可以从 Maven 仓库或者官方网站下载,在本示例中使用 Maven 下载:

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

2. 连接数据库

可以使用以下代码连接到 PostgreSQL 数据库:

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

public class PostgreSqlJdbcExample {
    public static void main(String[] args) {
        String jdbcUrl = "jdbc:postgresql://localhost:5432/mydb"; // 数据库连接字符串
        String username = "myuser"; // 数据库用户名
        String password = "mypassword"; // 数据库密码

        try (Connection conn = DriverManager.getConnection(jdbcUrl, username, password)) {
            System.out.println("连接成功!");
        } catch (SQLException e) {
            System.out.println("连接失败!错误信息:" + e.getMessage());
        }
    }
}

其中,jdbcUrl 表示数据库连接字符串,格式为 "jdbc:postgresql://hostname:port/database"。

3. 执行SQL命令

使用 PreparedStatement 可以执行 SQL 命令:

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

public class PostgreSqlJdbcExample {
    public static void main(String[] args) {
        String jdbcUrl = "jdbc:postgresql://localhost:5432/mydb";
        String username = "myuser";
        String password = "mypassword";

        try (Connection conn = DriverManager.getConnection(jdbcUrl, username, password)) {
            String sql = "SELECT * FROM users WHERE id = ?";
            PreparedStatement pstmt = conn.prepareStatement(sql);
            pstmt.setInt(1, 1);
            ResultSet rs = pstmt.executeQuery();
            while (rs.next()) {
                System.out.println(rs.getInt("id") + "," + rs.getString("name"));
            }
        } catch (SQLException e) {
            System.out.println("执行SQL命令失败,错误信息:" + e.getMessage());
        }
    }
}

这里执行了一条查询语句,参数 1 表示查询 id 为1的用户信息。

示例

示例1:插入一条记录

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

public class PostgreSqlJdbcExample {
    public static void main(String[] args) {
        String jdbcUrl = "jdbc:postgresql://localhost:5432/mydb";
        String username = "myuser";
        String password = "mypassword";

        try (Connection conn = DriverManager.getConnection(jdbcUrl, username, password)) {
            String sql = "INSERT INTO users (id, name, age) VALUES (?, ?, ?)";
            PreparedStatement pstmt = conn.prepareStatement(sql);
            pstmt.setInt(1, 1);
            pstmt.setString(2, "张三");
            pstmt.setInt(3, 20);
            int rows = pstmt.executeUpdate();
            System.out.println("插入成功,受影响行数:" + rows);
        } catch (SQLException e) {
            System.out.println("插入失败,错误信息:" + e.getMessage());
        }
    }
}

这里插入了一条 id 为 1,姓名为 张三,年龄为 20 的用户记录。

示例2:更新一条记录

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

public class PostgreSqlJdbcExample {
    public static void main(String[] args) {
        String jdbcUrl = "jdbc:postgresql://localhost:5432/mydb";
        String username = "myuser";
        String password = "mypassword";

        try (Connection conn = DriverManager.getConnection(jdbcUrl, username, password)) {
            String sql = "UPDATE users SET age = ? WHERE id = ?";
            PreparedStatement pstmt = conn.prepareStatement(sql);
            pstmt.setInt(1, 22);
            pstmt.setInt(2, 1);
            int rows = pstmt.executeUpdate();
            System.out.println("更新成功,受影响行数:" + rows);
        } catch (SQLException e) {
            System.out.println("更新失败,错误信息:" + e.getMessage());
        }
    }
}

这里更新了 id 为 1 的用户的年龄为 22。

结论

通过 JDBC 驱动,Java 可以很方便地连接到 PostgreSQL 数据库,并完成数据交流。可以使用 PreparedStatement 完成对数据库表的增删改查。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Java连接PostgreSql数据库及基本使用方式 - Python技术站

(0)
上一篇 2023年5月20日
下一篇 2023年5月20日

相关文章

  • 什么是Java单元测试?

    Java单元测试是在软件开发中的测试过程,它用于测试程序的单个单元或模块是否能够按照预期工作。这个单元可以是一个方法、一个类、一组类或整个应用程序等。单元测试的目的是帮助开发人员识别和修复软件中的缺陷,以确保软件在生产环境中能够正常运行。 使用攻略 选择测试框架 Java有许多单元测试框架,包括JUnit、TestNG、Spock等。推荐使用最为常用的JUn…

    Java 2023年5月11日
    00
  • Redis数据库中实现分布式锁的方法

    下面是详细讲解 Redis 数据库中实现分布式锁的方法的完整攻略。 什么是分布式锁? 分布式锁是指多个进程或者不同的机器在进行分布式系统协同工作时,为了避免数据同时被多个进程或机器访问而导致数据不一致或者错误的问题而采用的同步机制。 在 Redis 中实现分布式锁是非常常见和实用的场景,下面将主要阐述 Redis 实现分布式锁的方法。 实现 Redis 分布…

    Java 2023年5月19日
    00
  • java实现动态时钟并设置闹钟功能

    Java实现动态时钟并设置闹钟功能 概述 本攻略将介绍如何使用Java语言实现一个动态时钟并设置闹钟功能。该时钟将会不断更新并显示当前的时间,并允许用户设置一个闹钟时间。当时钟时间到达设置的闹钟时间时,用户将会收到一条提示消息。 实现过程 步骤一:创建界面和布局 我们可以使用Swing工具箱来创建用户界面,如下所示: public class Clock e…

    Java 2023年5月20日
    00
  • Sprint Boot @Size使用方法详解

    @Size是Spring Boot中的一个注解,用于标记一个字段或方法参数的长度必须在指定范围内。在本文中,我们将详细介绍@Size注解的作用和使用方法,并提供两个示例。 @Size注解的作用 @Size注解用于标记一个字段或方法参数的长度必须在指定范围内。当使用@Size注解标记一个字段或方法参数时,如果该字段或方法参数的长度不在指定范围内,则会抛出jav…

    Java 2023年5月5日
    00
  • Spring数据访问模板化方法

    Spring数据访问模板化方法是Spring框架提供的用于简化数据访问的一种方式。它通过封装了底层数据访问API的细节,提供了一些常用的数据访问方法供我们使用。这样我们就可以更加方便地进行数据访问,同时不需要太关心数据访问的底层细节。 Spring数据访问模板化方法主要包括JdbcTemplate、NamedParameterJdbcTemplate和Sim…

    Java 2023年5月20日
    00
  • Java线程间的通信方式详解

    Java线程间的通信方式详解 在Java中,线程间的通信是指两个或多个线程之间通过某种方式进行交流、协作的过程,Java线程间的通信主要有以下几种方式: 1.共享内存 共享内存是指多个线程之间共享同一块内存区域,通过修改该内存区域来实现线程之间的通信。Java中的共享内存通信方式有synchronized、volatile、wait和notify等。 示例1…

    Java 2023年5月19日
    00
  • Java加密解密和数字签名完整代码示例

    首先我们需要明确几个概念:加密、解密、数字签名。 加密:将明文(未加密的数据)通过某种方式转换成密文(已加密的数据),使得未授权的第三方无法读取到数据内容。 解密:将密文还原成明文,使得有授权的第三方可以读取数据内容。 数字签名:对数据进行加密后再生成一个签名,用于验证数据的来源和完整性。 下面我们分别讲解 Java 中的加密解密和数字签名的完整代码示例。 …

    Java 2023年5月19日
    00
  • java Timer 定时每天凌晨1点执行任务

    Java Timer是Java中的一个计时器工具,可以用来在特定时间间隔内执行指定任务。下面是Java Timer实现每天凌晨1点执行任务的攻略: 步骤一:创建Timer对象 在Java中,我们需要使用java.util.Timer类来创建一个计时器对象。首先,需要导入java.util.Timer和java.util.TimerTask这两个包。 impo…

    Java 2023年5月20日
    00
合作推广
合作推广
分享本页
返回顶部