2017-12-06 3 views
0

私は約200程度の列の表を持っています。 Jooqを使用してこのデータをMySQLに挿入する最良の方法を知りたい。多数の列を持つ表にデータを挿入する

今、私のプログラム全体でPOJOを使用してデータを処理/変換しています。私の問題は、POJOを作成したい場合は、.set {column name}を呼び出す必要があるということです。 POJOには、.set(column、value)などの汎用の.setメソッドはありません。

誰もが言う前に、私は200カラムのために長い道のりをやっていますが、これを維持するのが難しいように、同じようなサイズのテーブルを10個も持っています。

だから私の質問は二つある:

  1. は正しいPOJOのAPIの私の理解ですか?私は設定を見て、私は私を助けるかもしれない何かを見ることができませんでした。

  2. POJOの外でこれを行う最も簡単な方法は何ですか?現時点では私の最高のアイデアは

レコード

Record test = conn.newRecord(table); 
Field<Object> field1 = field(name(table,col)); 
test.set(field1, 10); 
を使用している。しかし、これはそれを行うための正しい方法がある場合、私は知りません(これが原因としているなら、私はラインを下に悲しみ)。

+0

たとえば、eclipseLinkなどのJPAでは、POJOおよびO/Rマッピングの作成を提供しています。たぶんあなたはそれを組み合わせることができます。それ以外の場合は、独自のコードジェネレータを記述します –

答えて

0

"POJO"によってjOOQのPOJOが生成された場合は、実際にはset(column, value)メソッドがありません。これは、古典的なPOJO(またはJavaBean)から期待されるものではありません。しかし、あなたが気づいたように、jOOQのレコードはこれらのメソッドを持っています。レコードでは、一度に多くの値を設定することもできます。 Mapから、またはアレイから得ることができる。詳細については、Record.from(Object)メソッドを参照してください。

つまり、レコードの使用はjOOQにとって慣用的です。私はこれが "行を悲しむ"の原因となるかどうかは分かりません。

関連する問題