FieldSet
在 Spring Batch 中使用平面檔案時,無論是輸入還是輸出,最重要的類別之一是 FieldSet
。許多架構和程式庫都包含用於協助您從檔案讀取的抽象概念,但它們通常會傳回 String
或 String
物件的陣列。這實際上只完成了一半。FieldSet
是 Spring Batch 的抽象概念,用於啟用從檔案資源繫結欄位。它允許開發人員以與處理資料庫輸入非常相似的方式處理檔案輸入。FieldSet
在概念上類似於 JDBC ResultSet
。FieldSet
只需要一個引數:String
權杖陣列。或者,您也可以設定欄位的名稱,以便可以透過索引或名稱存取欄位,如同 ResultSet
的模式,如下列範例所示
String[] tokens = new String[]{"foo", "1", "true"};
FieldSet fs = new DefaultFieldSet(tokens);
String name = fs.readString(0);
int value = fs.readInt(1);
boolean booleanValue = fs.readBoolean(2);
FieldSet
介面上還有許多其他選項,例如 Date
、long、BigDecimal
等等。FieldSet
的最大優勢在於它提供了平面檔案輸入的一致性剖析。每個批次工作不會以可能意想不到的方式進行不同的剖析,而是在處理格式例外造成的錯誤或進行簡單的資料轉換時,它可以保持一致。