2012-02-24 12 views
0

Prepared Statementを作成するために挿入クエリ文字列を作成する必要があります。私はすべての列名をExcelファイルに持っています。多数の列を持つprepared statementを作成する

テーブルに250を超える列があります。単純な挿入クエリを作成するのに時間と労力がかかります。私は列を数えて、クエリの値フィールドに?を入れなければなりません。

これらのクエリを作成する他の方法はありますか。

ご提案ください。あなたはバッチ処理準備された文または FROM COPYを使用することができ、高速のインサートを事前

+0

あなたがやっていることは、一度だけの仕事です!いくつかの機械的回避策やJavaソリューションをお探しですか? – Santosh

+0

はい私は同じクエリを書く必要がありますが、10以上のテーブルに対してわずかな変更を加えなければならないので – Abhij

答えて

1

私はこれを行うというパラダイムを提案することができますが、それを実装することはもっと大きな問題になります。私が作ることができるから、これはかなり複雑な作業です!

これらの列名を読み込むにはJXL APIを使用できますが、同じExcelファイルに型を保存することもできます(これは文を準備するときに便利です)。

だからあなたのExcelは次のようになります。

Column 1 | Integer 
Column 2 | String 
Column 3 | Date 

ので

にJXLは地図(のjava.util.HashMap)にこの情報を保存、あなたはJavaのプログラムにこのすべてを読むことができますこの時点で、プログラムの列名とそのデータ型があります。

今、準備されたステートメントの作成についてです。

String allColumnNames =""; 
foreach element in the hashmap, allColumnNames+=getKey() + "," 

ので、この時点でallColumnNamesは、すべてのカラム名

を持っているが、セグメントでプリペアドステートメントを作成します:

​​3210

あなたのプリペアドステートメントはそこに行きます。

この後、stuffを挿入するために、ハッシュマップの「値」部分に応じて、ハッシュマップをもう一度繰り返し、setStringまたはsetIntなどを呼び出すことができます。

私が言ったように、それは長く複雑なプロセスですが、この手順を変更してExcelファイル内の値を設定し、Excelから直接テーブルに挿入することさえできます。

関連する問題