Sehrope Sarkini 在 Claude 的协助下从零编写了一个新的 JDBC 驱动,目前仍处于预发布阶段。以下摘自他的博客:
PostgreSQL 优先。 原生 API 围绕 PostgreSQL 的 wire protocol 和功能集合设计,而不是围绕 JDBC 必须兼容所有数据库时采用的最低公共分母设计。只要 PostgreSQL 能做到,API 就应该能够直接表达。
JDBC 是一层适配,而不是基础。 完整的 JDBC 兼容是长期目标。项目已经提供了 java.sql.* 层,可以注册 Driver,并提供 Connection、PreparedStatement、ResultSet、DatabaseMetaData、DataSource 和 XA。但这一层建立在原生 API 之上,而不是反过来决定核心执行模型。
面向 I/O 的虚拟线程。 在 Java 21 上,“快速驱动”不再必然意味着异步或响应式 API。pg-java 采用普通阻塞风格代码,并小心避免 pin 住 carrier thread。你可以在没有 event loop 或回调 API 的情况下,用虚拟线程运行成千上万个连接。
默认流式处理。 核心查询原语是 pull cursor,只从网络读取生成下一行所需的数据,不会缓冲完整结果集。forEach、map、collect 等只是基于它的适配器。
项目地址:https://github.com/pgjdbc/pg-java 原文:https://launchbylunch.com/posts/2026/Jul/29/introducing-pg-java/