2017-10-24 7 views
-2

私はすでに多くのチュートリアルと春の素材を見てきましたが、私はItemWriterに単純なオブジェクトを含む例だけを見つけました。私の実際のシナリオで春バッチどのようにマップを書く

例えば

...

@Bean 
    JdbcBatchItemWriter<Student> writer = new JdbcBatchItemWriter<>(); 
    writer.setItemSqlParameterSourceProvider(new BeanPropertyItemSqlParameterSourceProvider<Student>()); 
    writer.setItemPreparedStatementSetter(new ItemPreparedStatementSetter<Student>(){ 
     @Override 
     public void setValues(Student student, PreparedStatement ps) throws SQLException { 
      ps.setLong(1,student.getStudentCode()); 
      ps.setObject(2,student.getStudentGrade()); 
     }}); 
    writer.setSql(QUERY_STUDENT_GRADE_INSERT); 
    writer.setDataSource(dataSource); 
    return writer; 

私のようなキーと値が含まれている地図書き込む必要があります:

Map<KeyObject,Long> 

をしかし、私が何かをコーディングする方法はわかりませんが私は自分のマップで受け取ったすべてのコンテンツを挿入することができます。

別の質問...

私は、データベースにこのデータを保存するために必要なアイテムの特定の数が、私のコレクション内の前のコンテンツ滞在、そのように処理する...どのように私はきれいにすることができるがあります書き込み後のコンテンツをマップしますか?

+0

"宿題のために地図を書く必要がありますか?あなたの(最初の)質問がはっきりしていないし、あなたの秒について: 'Map.clear()' *はすべきである。 – xerx593

+0

私はStudentクラスをMap

+1

に置き換えたいと思います。これは 'Student 'の出現を' Map '(上記のコード..)で置き換えるだけで十分です。メソッドの中で 'getStudentXXX()'を何か "out of the map"に置き換えなければなりません。 – xerx593

答えて

0

解決策は、私はちょうど、リスト内のオブジェクトをフィルタリングするためにラムダを使用して、共通itemWriterを介してそれらを書いているリスト

のための私の地図を交換しました。

関連する問題