0

私の質問は少しトリッキーです、私はあなたに私の要件が何であるかを理解させるために最善を尽くしています。

質問:データベーステーブルからcsvファイルを生成したいです!方法を参照してください。

理解のためのダミーメソッド。

public void convertToCsv(tablename、csv_file_path_name);

シナリオ:実行時にテーブル名が指定されている場合、メソッドはそのcsvファイルを生成する必要があります(テーブル名はデータベースで使用可能な任意のテーブルにすることができます)。このタスクを実行するには、クラスを動的に生成する必要があります。 POJOと休止状態のマッピング。異なるテーブルの列が異なるため、POJO(オブジェクトモデル)と休止状態のマッピングを自分で定義できないためです。

tablenameは実行時に提供されるため、メソッドは実行時にPOJOとHibernateマッピングを生成する必要があります。

4

1 に答える 1

1

不可能だよ。Hibernateには、起動時にマッピングされる、明確に定義されたエンティティクラスのセットが必要です。しかし実際には、テーブルレベルで作業していて、CSVファイル内のテーブルのすべての列が必要な場合、Hibernateは適切なツールではありません。JDBCを使用する必要があります。

テーブルからすべてを選択し、結果セットのメタデータを取得して列の番号タイプと名前を確認し、JDBC結果セットを反復処理して、結果セットのすべての行に対して新しいCSV行を生成します。

于 2012-06-26T08:12:55.247 に答える