JDBC 開発ガイド: CData JDBC Driver for CSV を使った Spring Boot アプリケーション
CData JDBC ドライバーを使用すると、Java 開発者は CSV ファイルを含む270以上のデータソースに、データベースと同じ感覚でアプリケーションから接続できます。このガイドでは、CData JDBC Driver for CSV を使用して CSV ファイルからデータを読み取るシンプルな Spring Boot REST API の構築方法を解説します。
前提条件
- Java JDK 1.8+(Oracle または OpenJDK からダウンロード)
- Maven(または Gradle)
- Spring Boot(このガイドでは Maven を使用します)
- CData JDBC Driver for CSV(こちらからダウンロード)
- CData ライセンスファイル(cdata.jdbc.csv.lic)
- CData JDBC ドライバーをダウンロードしたら、ターミナルを開き、JDBC ドライバーのインストールディレクトリに移動して、次のコマンドを実行します:
java -jar cdata.jdbc.csv.jar --license名前、メールアドレス、ライセンスキー(または TRIAL)を入力してください。
- CData JDBC ドライバーをダウンロードしたら、ターミナルを開き、JDBC ドライバーのインストールディレクトリに移動して、次のコマンドを実行します:
- サンプル CSV ファイル(例:/home/user/TestFolder または C:\TestFolder などのディレクトリに配置)(こちらからダウンロード)
1. プロジェクトのセットアップ
以下の手順に従ってプロジェクトをセットアップしてください。完成したソースプロジェクトは、こちらからダウンロードすることもできます:cdata-jdbc-spring-boot.zip
a. Spring Boot プロジェクトの作成
Spring Initializr または IDE を使用して、以下の依存関係を持つ新しい Maven プロジェクトを作成します:
- Spring Web
- Spring JDBC
b. CData JDBC ドライバーをローカル Maven リポジトリに追加
CData JDBC Driver for CSV をダウンロードしたら、ファット JAR に含めるためにローカル Maven リポジトリにインストールします:
mvn install:install-file \
-Dfile=lib/cdata.jdbc.csv.jar \
-DgroupId=cdata \
-DartifactId=jdbc-csv \
-Dversion=24.0.9175.0 \
-Dpackaging=jar
注意: -Dfile のパスと -Dversion は、必要に応じて調整してください。
2. ライセンスファイルの追加
cdata.jdbc.csv.lic ライセンスファイルをプロジェクトの src/main/resources ディレクトリにコピーします:
cp /path/to/cdata.jdbc.csv.lic src/main/resources/
これにより、ライセンスファイルがファット JAR に含まれ、実行時にクラスパスで利用可能になります。
3. pom.xml の更新
CData 依存関係を標準の Maven 依存関係として追加します(system スコープや systemPath は使用しません):
cdata
jdbc-csv
23.0.8839.0
dependencies セクションは次のようになります:
org.springframework.boot
spring-boot-starter-jdbc
org.springframework.boot
spring-boot-starter-web
org.springframework.boot
spring-boot-starter-test
test
cdata
jdbc-csv
24.0.9175.0
4. DataSource の設定
src/main/resources/application.properties に以下を追加します:
spring.datasource.url=jdbc:csv:URI='/absolute/path/to/your/csvfiles';RowScanDepth=0;
spring.datasource.driver-class-name=cdata.jdbc.csv.CSVDriver
spring.datasource.username=
spring.datasource.password=
注意:
- URI には絶対パスを使用してください(例:/Users/yourname/Downloads/csvfiles)。
- 指定したディレクトリに CSV ファイルが含まれていることを確認してください。
- RowScanDepth を 0 に設定すると、CSV ドキュメント内のすべての行をスキャンしてデータ型を検出します(パフォーマンスよりも精度を優先)。
5. シンプルなリポジトリの作成
CSV データをクエリするためのリポジトリを作成しましょう。
src/main/java/com/example/csvjdbc/repository/CsvRepository.java
package com.example.csvjdbc.repository;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.stereotype.Repository;
import java.util.List;
import java.util.Map;
@Repository
public class CsvRepository {
@Autowired
private JdbcTemplate jdbcTemplate;
public List listTables() {
return jdbcTemplate.queryForList(
"SELECT TABLE_NAME FROM INFORMATION_SCHEMA.TABLES", String.class
);
}
public List
6. REST コントローラーの作成
src/main/java/com/example/csvjdbc/controller/CsvController.java
package com.example.csvjdbc.controller;
import com.example.csvjdbc.repository.CsvRepository;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import java.util.List;
import java.util.Map;
@RestController
@RequestMapping("/api/csv")
public class CsvController {
@Autowired
private CsvRepository csvRepository;
@GetMapping("/tables")
public List getTables() {
return csvRepository.listTables();
}
@GetMapping("/table/{tableName}")
public List
7. メインアプリケーションクラス
src/main/java/com/example/csvjdbc/CsvJdbcApplication.java
package com.example.csvjdbc;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
@SpringBootApplication
public class CsvJdbcApplication {
public static void main(String[] args) {
SpringApplication.run(CsvJdbcApplication.class, args);
}
}
8. アプリケーションのビルドと実行
- プロジェクトのビルド:
./mvnw clean packageこれにより、CData ドライバーとライセンスファイルを含むファット JAR が target/ ディレクトリに作成されます。
- アプリケーションの実行:
java -jar target/jdbc-spring-boot-0.0.1-SNAPSHOT.jar
9. API のテスト
- テーブル(CSV ファイル)の一覧表示:
GET http://localhost:8080/api/csv/tables - テーブルのクエリ(例:Opportunity.csv):
GET http://localhost:8080/api/csv/table/Opportunity.csv
10. 出力例
GET /api/csv/tables
[
"Opportunity.csv",
"Accounts.csv"
]
GET /api/csv/table/Opportunity.csv
[
{
"Id": "1",
"Name": "Big Deal",
"Amount": "10000",
"Stage": "Closed Won"
},
...
]
補足とカスタマイズ
- リポジトリを拡張して、フィルタリング、ページネーション、動的なカラム選択などに対応させることができます。
- CData JDBC ドライバーは多くの高度な機能をサポートしています。詳しくは公式ドキュメントをご覧ください。
- ライセンスエラーが発生した場合は、ビルド前に cdata.jdbc.csv.lic が src/main/resources に存在することを確認してください。
データ開発者向け JDBC ドライバー
CData JDBC ドライバーは、従来のデータベースに加え、SaaS、NoSQL、ビッグデータシステムなど270以上のデータソースへの一貫した SQL ベースの接続を提供することで、JDBC の機能を拡張します。ResultSet を使った効率的なクエリ、データの変更、バッチ処理、トランザクション管理、コネクションプーリング、ストアドプロシージャの呼び出しなど、高度な機能を備えています。
CData JDBC ドライバーを使えば、馴染みのある SQL を通じて Java プロジェクトからデータにアクセスできます。30日間の無料トライアルをお試しいただき、データ駆動型アプリケーションの開発を始めましょう!