Ini bekerja untuk saya:
try (Connection conn = DriverManager.getConnection(connUrl, myUid, myPwd)) {
long rowsInserted = new CopyManager((BaseConnection) conn)
.copyIn(
"COPY table1 FROM STDIN (FORMAT csv, HEADER)",
new BufferedReader(new FileReader("C:/Users/gord/Desktop/testdata.csv"))
);
System.out.printf("%d row(s) inserted%n", rowsInserted);
}
Menggunakan copyIn(String sql, Reader from)
memiliki keuntungan menghindari masalah di mana proses server PostgreSQL tidak dapat membaca file secara langsung, baik karena tidak memiliki izin (seperti membaca file di Desktop saya) atau karena file tersebut tidak lokal ke mesin tempat server PostgreSQL berjalan.