You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何通过PG服务器访问H2DB?Java连接报错求解决方案

解决H2 PG服务器连接报错:unexpected status 1375731712

你遇到的问题核心是用错了JDBC连接方式:H2的PG兼容服务器模拟的是PostgreSQL协议,不能用H2原生的TCP JDBC URL去连接,必须使用PostgreSQL的JDBC驱动和对应格式的URL。

具体修复步骤:

  1. 引入PostgreSQL JDBC驱动
    如果用Maven管理依赖,添加以下依赖:

    <dependency>
        <groupId>org.postgresql</groupId>
        <artifactId>postgresql</artifactId>
        <version>42.6.0</version> <!-- 使用最新稳定版即可 -->
    </dependency>
    

    手动导入的话,下载对应版本的postgresql-*.jar放到项目类路径中。

  2. 修改连接代码
    替换驱动类和连接URL,适配PostgreSQL协议:

    import java.sql.*;
    
    public class Main {
        public static void main(String[] a) {
            try {
                // 加载PostgreSQL驱动
                Class.forName("org.postgresql.Driver");
                // PG兼容服务器的URL格式:jdbc:postgresql://主机:端口/数据库名
                Connection conn = DriverManager.getConnection(
                    "jdbc:postgresql://localhost:5435/db_test", 
                    "sa", 
                    "0df "
                );
                System.out.println("success");
                conn.close();
            } catch (Exception e) {
                e.printStackTrace(); // 打印完整栈信息更利于排查问题
            }
        }
    }
    
  3. 验证H2 PG服务器的启动状态
    确保启动H2时开启了PG兼容模式,命令示例:

    java -cp h2-2.1.214.jar org.h2.tools.Server -pg -pgPort 5435
    

    其中-pg参数表示启动PG兼容服务器,-pgPort指定监听端口(默认就是5435,可省略)。

关于加密配置的额外说明

你原连接中使用了CIPHER=AES,在PG兼容模式下,H2的加密参数传递方式不同,建议先测试无加密的连接确认能成功后,再尝试添加加密配置。

内容的提问来源于stack exchange,提问作者gstone

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.08 23:35:10