Postgres Jdbc Driver | 2026 |

<dependency> <groupId>org.postgresql</groupId> <artifactId>postgresql</artifactId> <version>42.7.3</version> <!-- Check for latest --> </dependency>

CopyManager copyManager = ((PGConnection) conn).getCopyAPI(); String sql = "COPY users (name, email) FROM STDIN"; CopyIn copyIn = copyManager.copyIn(sql); BufferedWriter writer = new BufferedWriter(new OutputStreamWriter(copyIn)); writer.write("Alice\talice@example.com\n"); writer.write("Bob\tbob@example.com\n"); writer.close(); long rows = copyIn.getHandledRowCount(); 7.3 Logical Replication (PG 10+) PGConnection pgConn = conn.unwrap(PGConnection.class); PGReplicationStream stream = pgConn.getReplicationAPI() .replicationStream() .logical() .withSlotName("test_slot") .withSlotOption("proto_version", "1") .withSlotOption("publication_names", "mypub") .start(); while (true) ByteBuffer msg = stream.readPending(); if (msg != null) // process changes postgres jdbc driver

String insert = "INSERT INTO users (name, email) VALUES (?, ?)"; try (PreparedStatement pstmt = conn.prepareStatement(insert, Statement.RETURN_GENERATED_KEYS)) pstmt.setString(1, "John"); pstmt.setString(2, "john@example.com"); pstmt.executeUpdate(); ResultSet keys = pstmt.getGeneratedKeys(); if (keys.next()) long id = keys.getLong(1); &lt;dependency&gt; &lt;groupId&gt;org