sql >> Database >  >> RDS >> PostgreSQL

Correcte manier om copy Postgres jdbc . te gebruiken

Dit werkt voor mij:

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);
}

Met behulp van copyIn(String sql, Reader from) heeft het voordeel dat problemen worden vermeden waarbij het PostgreSQL-serverproces het bestand niet rechtstreeks kan lezen, hetzij omdat het geen machtigingen heeft (zoals het lezen van bestanden op mijn bureaublad) of omdat het bestand niet lokaal is op de machine waarop de PostgreSQL-server draait.



  1. php waarschuwing mysql_fetch_assoc

  2. Over knelpunten in de prestaties van SQL Server gesproken

  3. Hoe lees ik een LONGBLOB uit MySQL

  4. Paginaweergaven bijhouden met PHP