Menu

Tree [e3ea55] master / docs /
 History

HTTPS access


File Date Author Commit
 CsvJdbcLogo.png 2021-04-18 Simon Chenery Simon Chenery [95e212] Display logo at start of README.md
 README.md 2021-04-25 Simon Chenery Simon Chenery [e92198] Fix markdown link to SQuirrel
 develop.md 2024-10-13 Simon Chenery Simon Chenery [be5736] Update "Working With Eclipse" steps in doc
 doc.md 2024-11-04 simoc simoc [e09d46] Note time arithmetic also in milliseconds in do...
 release.md 2024-03-23 Simon Chenery Simon Chenery [51c5aa] Update release.md to state Java 11 required

Read Me

CsvJdbc

Java CI

A Java database driver for reading comma-separated-value files.

Introduction

CsvJdbc is a read-only JDBC driver that uses Comma Separated Value (CSV) files
or DBF files as database tables. It is ideal for writing data import programs
or analyzing log files.

The driver enables a directory or a ZIP file containing CSV or DBF files to be
accessed as though it were a database containing tables. However, as there is
no real database management system behind the scenes, not all JDBC
functionality is available.

Usage

The CsvJdbc driver is used just like any other JDBC driver,
either in a database tool such as
DBeaver or
SQuirrel SQL Client,
or programmatically in your own Java program using the steps below:

  1. download csvjdbc.jar and add it to the Java CLASSPATH.
  2. use DriverManager to connect to the database (the directory or ZIP file)
  3. create a statement object
  4. use the statement object to execute an SQL SELECT query
  5. the result of the query is a ResultSet

The following example puts the above steps into practice.

import java.sql.*;
import org.relique.jdbc.csv.CsvDriver;

public class DemoDriver
{
  public static void main(String[] args) throws Exception
  {
    // Create a connection to directory given as first command line
    // parameter. Driver properties are passed in URL format
    // (or alternatively in a java.utils.Properties object).
    //
    // A single connection is thread-safe for use by several threads.
    String url = "jdbc:relique:csv:" + args[0] + "?" +
      "separator=;" + "&" + "fileExtension=.txt";
    try (Connection conn = DriverManager.getConnection(url);

      // Create a Statement object to execute the query with.
      // A Statement is not thread-safe.
      Statement stmt = conn.createStatement();

      // Select the ID and NAME columns from sample.csv
      ResultSet results = stmt.executeQuery("SELECT ID,NAME FROM sample"))
    {
      // Dump out the results to a CSV file with the same format
      // using CsvJdbc helper function
      boolean append = true;
      CsvDriver.writeToCsv(results, System.out, append);
    }
  }
}

Documentation

Full documentation for CsvJdbc is found here.

Developing

Read the instructions for compiling CsvJdbc
and for releasing CsvJdbc.

Want the latest updates on software, tech news, and AI?
Get latest updates about software, tech news, and AI from SourceForge directly in your inbox once a month.