Discover how a bimodal integration strategy can address the major data management challenges facing your organization today.
Get the Report →Connect to CSV Data in JRuby
Create a simple JRuby app with access to live CSV data.
JRuby is a high-performance, stable, fully threaded Java implementation of the Ruby programming language. The CData JDBC Driver for CSV makes it easy to integrate connectivity to live CSV data in JRuby. This article shows how to create a simple JRuby app that connects to CSV data, executes a query, and displays the results.
Configure a JDBC Connection to CSV Data
Before creating the app, note the installation location for the JAR file for the JDBC Driver (typically C:\Program Files\CData\CData JDBC Driver for CSV\lib).
JRuby natively supports JDBC, so you can easily connect to CSV and execute SQL queries. Initialize the JDBC connection with the getConnection function of the java.sql.DriverManager class.
The DataSource property must be set to a valid local folder name.
Also, specify the IncludeFiles property to work with text files having extensions that differ from .csv, .tab, or .txt. Specify multiple file extensions in a comma-separated list. You can also set Extended Properties compatible with the Microsoft Jet OLE DB 4.0 driver. Alternatively, you can provide the format of text files in a Schema.ini file.
Set UseRowNumbers to true if you are deleting or updating in CSV. This will create a new column with the name RowNumber which will be used as key for that table.
Built-in Connection String Designer
For assistance in constructing the JDBC URL, use the connection string designer built into the CSV JDBC Driver. Either double-click the JAR file or execute the jar file from the command-line.
java -jar cdata.jdbc.csv.jar
Fill in the connection properties and copy the connection string to the clipboard.
Below is a typical JDBC connection string for CSV:
jdbc:csv:DataSource=MyCSVFilesFolder;
Create a JRuby App with Connectivity to CSV Data
Create a new Ruby file (for example: CSVSelect.rb) and open it in a text editor. Copy the following code into your file:
require 'java'
require 'rubygems'
require 'C:/Program Files/CData/CData JDBC Driver for CSV 2018/lib/cdata.jdbc.csv.jar'
url = "jdbc:csv:DataSource=MyCSVFilesFolder;"
conn = java.sql.DriverManager.getConnection(url)
stmt = conn.createStatement
rs = stmt.executeQuery("SELECT City, TotalDue FROM Customer")
while (rs.next) do
puts rs.getString(1) + ' ' + rs.getString(2)
end
With the file completed, you are ready to display your CSV data with JRuby. To do so, simply run your file from the command line:
jruby -S CSVSelect.rb
Writing SQL-92 queries to CSV allows you to quickly and easily incorporate CSV data into your own JRuby applications. Download a free trial today!