2016-10-14 9 views
0

私はテーブル内に空の行を作成し、データがロードされる場所を渡すことができるプロジェクトを進めています。JDBC DataRowに相当する

例 -

insert(DomainObject obj) { 
    // connect to DB 
    // create new row 
    // call methods in hierarchy that insert data into row 
     // such as save(DomainObject obj, DataRow row) 
    // commit 
} 

私はJdbcRowSetを使用しようとしてきたが、それはこれを行うための正しい方法であれば、私はわからない、と物事はとにかくそのアプローチと厄介取得し始めています。

編集:この特定の状況では、私はフレームワークまたはORMを使用したくありません。単純な古いJDBCです。

+0

JDBCでは、挿入時に値を個々の列に割り当てます。論理レコードを挿入する場合は、オブジェクトを行にマップするHibernateのようなものを使用して調べることができます。 –

答えて

0

プレーンなJDBCだけを使用したい場合は、本当にそのようなことはありません。あなたは行セットを使用しようとすることもできますが、それは実際には意味がありません。私の(限られた)経験では、Javaに含まれている行セット参照の実装は避けなければならないバグです。

あなたは、HibernateのようなORM、あるいはjOOQやspring-jdbcのようなライブラリを使う必要があります。

あなたの仕事の仕方は逆です。私の意見では、通常の方法です。最初にデータを収集し、それをデータベースに挿入します。それが何らかの理由で実現できない場合は、最初に最小量のデータを収集し、挿入して残りのデータを収集し、データベースを更新します。

+0

PreparedStatementを渡すことができますか?各マッピングクラスでは、適切なパラメータを設定します。 – hrazzer

+0

@hrazzerあなたは可能ですが、テストをより困難にする漏れ抽象であり、多くのコードをJDBCに緊密に結びつけます。 –