Skip to content

Some utillities for loading csv data into a PosgtreSQL database

Notifications You must be signed in to change notification settings

jferard/pgloaderutils

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Build Status Code Coverage

pgLoader Utils

(C) J. Férard 2016-2018 & 2020-2022

Some utilities for loading csv data into a PostgreSQL database: detect file encoding, CSV format and populate database, under GPL v3.

Presentation

pgLoader Utils is a small set of classes to make PostgreSQL bulk load simpler. It allows to process the CSV file on the fly (e.g. to format dates).

The CSV Sniffer part is a slow but (I hope) reliable sniffer that detects, for a given CSV file :

  • its encoding, among three values : ASCII, UTF-8, "other" ;
  • its delimiter char, quote char and escape char ;
  • whether it has or not a header.

Usage

Here is an example:

try {
    Class.forName("org.postgresql.Driver");
    try {
        Connection connection = DriverManager.getConnection(
                "jdbc:postgresql://127.0.0.1:5432/testdb", "postgres",
                "postgres");
        try {
            Statement statement = connection.createStatement();
            statement.executeUpdate(
                    "DROP TABLE IF EXISTS testtable");
            statement.executeUpdate(
                    "CREATE TABLE testtable ("
                            + "col1 text," + "col2 decimal,"
                            + "col3 text)");

            CSVLoaderForPostgreSQL loader = CSVLoaderForPostgreSQL
                    .toTable("testtable");
            final StringReader stringReader = new StringReader("\"a\", 1.0, \"b,c\"\n"
                    + "\"d\", 2.0, \"f,g\"\n");
            final CSVSimpleFileReader csvReader = new CSVSimpleFileReader(
                    stringReader, Logger.getLogger(""), 16);
            loader.populate(connection,
                    csvReader);
        } finally {
            connection.close();
        }
    } catch (SQLException e) {
        e.printStackTrace();
    }
} catch (ClassNotFoundException e) {
    e.printStackTrace();
}

About

Some utillities for loading csv data into a PosgtreSQL database

Resources

Stars

Watchers

Forks

Packages

No packages published

Languages