sql >> Databáze >  >> RDS >> PostgreSQL

Správný způsob použití kopie Postgres jdbc

Toto funguje pro mě:

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

Pomocí copyIn(String sql, Reader from) má tu výhodu, že se vyhne problémům, kdy proces serveru PostgreSQL není schopen číst soubor přímo, buď proto, že nemá oprávnění (jako je čtení souborů na mé ploše), nebo protože soubor není lokální na počítači, na kterém běží PostgreSQL server.



  1. Vyladění MySQL pro rychlé vytváření sloupců/indexů během vývoje

  2. Spusťte sledování změn v databázi MySQL

  3. Výchozí databáze s názvem postgres na serveru Postgresql

  4. Jak se připojit k místnímu hostiteli pomocí JDBC?