JDBC 開発者ガイド:入門

CData JDBC ドライバーは、Java アプリケーションを270以上のクラウドおよびオンプレミスデータソースに接続できる強力なツールです。これらのデータソースをデータベースのように扱うことができるため、データ統合がシンプルになり、SaaS、NoSQL、Big Data などのデータとシームレスにやり取りできます。

このガイドでは、CData JDBC Driver for CSV を使用してシンプルな Java コンソールアプリケーションを構築する手順を説明します。このアプリケーションでは、以下の処理を行います:

  1. CSV ファイルが格納されているパスをユーザーに入力してもらう(サンプルファイルをダウンロード)
  2. そのパスにデータベースのように接続する
  3. 利用可能な「テーブル」(ディレクトリ内の CSV ファイル)を取得する
  4. ユーザーが選択したテーブルからデータをクエリする
  5. 結果をコンソールに表示する

以下では、必要なセットアップ、コード、およびアプリケーションの実行方法を説明します。このガイドでは CSV ファイルを例に説明していますが、CData JDBC ドライバーがサポートする270以上のデータソースに対しても同じアプローチが適用できます。

前提条件

1. Java 開発環境のセットアップ

  • Java のインストール:Java Development Kit(JDK)1.8以上がインストールされていることを確認してください。Oracle からダウンロードするか、OpenJDK などのオープンソースディストリビューションを使用できます。
  • IDE またはビルドツールの選択:IDE(Eclipse、IntelliJ IDEA、NetBeans など)またはビルドツール(Maven、Gradle など)を使用してプロジェクトを管理できます。コマンドラインから javac と java を使用して Java コードをコンパイル・実行することも可能です。

2. CData JDBC Driver for CSV の追加

  • ドライバーのダウンロードCData のウェブサイトから CData JDBC Driver for CSV を入手してください。
  • ドライバーのインストール:Windows または Mac の場合は、インストーラーを実行してください。Linux/UNIX の場合は、適切な場所にファイルを展開してください。
    • Mac では、システム設定 > プライバシーとセキュリティでインストーラーの実行を許可する必要がある場合があります。
  • ドライバーのライセンス認証:ターミナルでインストールディレクトリに移動し、以下のコマンドを実行してください: java -jar cdata.jdbc.csv.jar --license

    名前、メールアドレス、ライセンスキー(または TRIAL)を入力してください。

  • JAR をクラスパスに追加
    • IDE を使用している場合は、JAR をプロジェクトライブラリに追加してください。
    • Maven/Gradle を使用している場合は、JAR を適切にインストールまたは参照してください。
    • コマンドラインで実行する場合は、-cp オプションで JAR ファイルをクラスパスに追加してください。

3. サンプル CSV ファイルの準備

  • サンプル CSV ファイル:接続・クエリできる CSV ファイルがシステム上のディレクトリに1つ以上あることを確認してください。例えば、C:\TestFolder(Windows の場合)や /home/user/TestFolder(macOS/Linux の場合)のようなフォルダに CSV ファイルを配置してください(サンプルファイルをダウンロード)。

4. 新しい Java プロジェクトの作成

  1. IDE を使用する場合(IntelliJ、Eclipse など):
    1. 新しい Java プロジェクトを作成します(例:「CSVJDBCApp」)。
    2. ダウンロードした CData CSV JDBC ドライバーの JAR をプロジェクトのライブラリ依存関係に追加します。
    3. ライセンスファイル(LIC)をプロジェクトのライブラリ依存関係に追加します。
  2. コマンドラインを使用する場合
    1. プロジェクト用のフォルダを作成します(例:mkdir CSVJDBCApp)。
    2. Java ソースファイルを CSVJDBCApp/src(またはコードを保存する場所)に配置します。
    3. コンパイルと実行時にクラスパスに CData JAR を含めます。

この設定により、コードが CSV ディレクトリに接続しようとする際にドライバーにアクセスできるようになります。

5. CSV ファイルへの接続設定

CData JDBC Driver for CSV で CSV ファイルに接続するには、通常以下のような接続文字列を使用します:

jdbc:csv:URI='C:/path/to/your/csvfiles';RowScanDepth=0;

接続文字列でさまざまなプロパティ(RowScanDepth、セキュリティ設定など)をカスタマイズできます。以下のサンプルでは、ドライバーがカラムのデータ型を推測する方法を最適化するために RowScanDepth=0 を指定しています。

6. コンソールアプリケーションの構築

以下は、基本的な機能を示す完全なコンソールベースの Java アプリケーションです:

  1. CSV ファイルが格納されているディレクトリをユーザーに入力してもらいます。
  2. そのディレクトリへの JDBC 接続を確立します。
  3. ディレクトリ内の CSV ファイル(データベーステーブルとして扱われる)を一覧表示します。
  4. テーブル名を入力してもらい、クエリを実行して最初の20レコードを表示します(出力は4カラムに制限)。

サンプルコード(ファイル名:CDataCSVApp.java):

import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.sql.Connection; import java.sql.DatabaseMetaData; import java.sql.DriverManager; import java.sql.ResultSet; import java.sql.SQLException; import java.sql.Statement; class CDataCSVApp { public static void main(String[] args) { try { BufferedReader buffer = new BufferedReader(new InputStreamReader(System.in)); // 1. ユーザーからディレクトリを取得 System.out.println("CSV ファイルへのパスを入力してください:"); String path = buffer.readLine(); // 2. 接続文字列を構築してドライバーをロード String cnxnString = "jdbc:csv:URI='" + path + "';RowScanDepth=0;"; Class.forName("cdata.jdbc.csv.CSVDriver"); Connection cnxn = DriverManager.getConnection(cnxnString); // 3. 「テーブル」(CSV ファイル)を一覧表示 DatabaseMetaData metaData = cnxn.getMetaData(); System.out.println("\n利用可能な CSV ファイル(テーブル):"); ResultSet tables = metaData.getTables(null, null, "%", null); int tableNum = 0; while (tables.next()) { System.out.println((tableNum + 1) + ". " + tables.getString("TABLE_NAME")); tableNum++; } // 4. ユーザーにファイルを選択してもらう System.out.println("\nテーブル名を入力してください('.csv' を含める):"); String tableName = buffer.readLine(); // 5. データをクエリ(最初の20行と最大4カラムのみ表示) String query = "SELECT * FROM [" + tableName + "] LIMIT 20"; Statement stat = cnxn.createStatement(); boolean ret = stat.execute(query); // 6. データを表示 if (ret) { ResultSet tableData = stat.getResultSet(); int columnCount = tableData.getMetaData().getColumnCount(); columnCount = Math.min(columnCount, 4); // 読みやすさのためカラムを4つに制限 // カラムヘッダーを出力(各カラム20文字に切り詰め) for (int i = 1; i <= columnCount; i++) { String colName = tableData.getMetaData().getColumnName(i); if (colName.length() > 20) { colName = colName.substring(0, 20); } System.out.printf("%-20s", colName); } System.out.println(); // 区切り線を出力 for (int i = 1; i <= columnCount; i++) { System.out.print("-------------------"); } System.out.println(); // 行を出力 while (tableData.next()) { for (int i = 1; i <= columnCount; i++) { String value = tableData.getString(i); if (value != null && value.length() > 20) { value = value.substring(0, 20); } System.out.printf("%-20s", value != null ? value : "NULL"); } System.out.println(); } } } catch (SQLException ex) { System.out.println("SQL 例外: " + ex.getMessage()); } catch (IOException | ClassNotFoundException ex) { System.out.println("例外: " + ex.getMessage()); } } }

主要なステップの解説

  1. CData JDBC ドライバーのロードClass.forName("cdata.jdbc.csv.CSVDriver");

    これにより、ドライバーが DriverManager に登録され、DriverManager.getConnection で使用できるようになります。

  2. 接続の確立Connection cnxn = DriverManager.getConnection("jdbc:csv:URI='" + path + "';RowScanDepth=0;");

    path を CSV ファイルが格納されているフォルダに置き換えてください。必要に応じて、この文字列に追加のプロパティを付加できます。

  3. テーブル(CSV ファイル)の取得DatabaseMetaData metaData = cnxn.getMetaData(); ResultSet tables = metaData.getTables(null, null, "%", null);

    CSV ファイルの名前を含む ResultSet が返されます。ユーザーが選択できるように、これらを出力します。

  4. ユーザーにテーブルを選択してもらう

    コンソールからユーザーの入力を読み取り、クエリする CSV ファイルを取得します。

  5. データのクエリString query = "SELECT * FROM [" + tableName + "] LIMIT 20"; Statement stat = cnxn.createStatement(); stat.execute(query);

    すべてのカラムを選択するシンプルな SQL ステートメントを実行します(最大20行)。

  6. 結果の表示:読みやすさのために4カラムに制限し、各セルを20文字に切り詰めています。これはあくまでデモンストレーション用であり、ニーズに合わせて調整できます。

7. アプリケーションの実行

  1. コンパイルjavac -cp .;path\to\cdata.jdbc.csv.jar CDataCSV.java
  2. 実行java -cp .;path\to\cdata.jdbc.csv.jar CDataCSV

    (macOS/Linux では、パス区切り文字として ;: に置き換えてください。)

  3. テスト
    1. CSV ファイルへのパスを入力します(例:C:/TestFolder)。
    2. 表示される CSV ファイルの一覧を確認します。
    3. ファイル名を入力します(例:Opportunity.csv)。
    4. コンソールにクエリ結果が表示されることを確認します。

データ開発者向け JDBC ドライバー

CData JDBC ドライバーは、従来のデータベースに加えて、SaaS、NoSQL、Big Data システムなど270以上のデータソースへの一貫した SQL ベースの接続を提供することで、JDBC の機能を拡張します。ResultSet を使用した効率的なクエリ、データの変更、バッチ処理、トランザクション管理、コネクションプーリング、ストアドプロシージャの呼び出しなど、高度な機能を提供します。

CData JDBC ドライバーを使用すれば、使い慣れた SQL で Java プロジェクトからデータにアクセスするための Java ライブラリが手に入ります。30日間の無償トライアルをお試しいただき、今すぐデータ駆動型アプリの構築を始めましょう!