1 回答

TA貢獻2051條經(jīng)驗 獲得超10個贊
我想問這個,F(xiàn)ieldSetMapper這個類可以用嗎
是的,你可以使用這個類。由于您編寫了 custom FieldSetMapper,因此您可以控制映射邏輯。您的映射器將類似于:
public class CustomerDataMapper implements FieldSetMapper<Customer> {
private static Log log = LogFactory.getLog(CustomerDataMapper.class);
@Override
public RawData mapFieldSet(FieldSet fieldSet) throws BindException {
Customer customer = new Customer();
try {
customer.setCust_Num(fieldSet.readInt("id"));
customer.setName_Surname(fieldSet.readString("name"));
}catch (Exception e){
log.error("Mapping error, " + e);
}
return customer;
}
}
但是您的問題不在閱讀方面(和FieldSetMapper),而是在作者方面。使用JdbcBatchItemWriteraItemSqlParameterSourceProvider從您的Customer對象中提取數(shù)據(jù)并將它們設置在 sql 查詢中。默認情況下,BeanPropertyItemSqlParameterSourceProvider使用 a,此實現(xiàn)基于 JavaBeans 命名約定提取數(shù)據(jù)。但是,您可以提供自定義實現(xiàn),在您的情況下將類似于:
class CustomerItemSqlParameterSourceProvider implements ItemSqlParameterSourceProvider<Customer> {
@Override
public SqlParameterSource createSqlParameterSource(Customer customer) {
Map<String, Object> params = new HashMap<>();
params.put("custNum", customer.getCust_Num());
params.put("nameSurname", customer.getName_Surname());
return new MapSqlParameterSource(params);
}
}
然后你把它設置CustomerItemSqlParameterSourceProvider在你的作家身上。
希望這可以幫助。
添加回答
舉報