开发者社区> 问答> 正文

我无法使用Spring Batch插入mysql数据库

我正在尝试将信息从excel文件插入到mysql中,我正在使用springbatch excel扩展名来读取文件,但是当尝试插入mysql时出现错误,显然它不发送我共享我的batch.config的信息

@Bean public BeanWrapperFieldSetMapper beanWrapperFieldSetMapper() { BeanWrapperFieldSetMapper fieldSetMapper = new BeanWrapperFieldSetMapper<>(); fieldSetMapper.setPrototypeBeanName("pagare"); return fieldSetMapper; }

@Bean
ItemReader<Pagare> pagareReader() {
    PoiItemReader<Pagare> reader = new PoiItemReader<>();
    reader.setResource(new ClassPathResource("pagares.xlsx"));
    reader.setRowMapper(excelRowMapper());
    return reader;
}

private RowMapper<Pagare> excelRowMapper() {
    return new RowMapperImpl();
}


@Bean
public BeanPropertyItemSqlParameterSourceProvider<Pagare> beanPropertyItemSqlParameterSourceProvider() {
    return new BeanPropertyItemSqlParameterSourceProvider<>();
}


@Bean
public ItemWriter<Pagare> writer(DataSource dataSource,
                                              BeanPropertyItemSqlParameterSourceProvider<Pagare> sqlParameterSourceProvider) {
    JdbcBatchItemWriter<Pagare> jdbcBatchItemWriter = new JdbcBatchItemWriter<>();
    jdbcBatchItemWriter.setDataSource(dataSource);
    jdbcBatchItemWriter.setItemSqlParameterSourceProvider(sqlParameterSourceProvider);
    jdbcBatchItemWriter.setSql("insert into pagare(test1,test2,test3,test4,test5,test6,test7,test8) values (:test1, :test2, :test3, :test4, :test5, :test6, :test7, :test8)");



    return jdbcBatchItemWriter;
}



@Bean
public Job jobCsvMysql(JobBuilderFactory jobBuilderFactory, Step step) {
    return jobBuilderFactory.get("jobCsvMysql").incrementer(new RunIdIncrementer()).flow(step).end().build();
}

@Bean
public Step step1(StepBuilderFactory stepBuilderFactory,
                  ItemReader<Pagare> pagareReader, ItemWriter<Pagare> writer, ItemProcessor<Pagare, Pagare> processor) {
    return stepBuilderFactory.get("step1").<Pagare, Pagare>chunk(10)
            .reader(pagareReader).processor(processor).writer(writer).build();
}

org.springframework.dao.DataIntegrityViolationException:PreparedStatementCallback; SQL [插入pagare(test1,test2,test3,test4,test5,test6,test7,test8)值(?,?,?,?,?,?,?,?)] 列“ test2”不能为空;嵌套异常为java.sql.BatchUpdateException:列“ test2”不能为null

展开
收起
保持可爱mmm 2019-11-15 11:51:22 580 0
0 条回答
写回答
取消 提交回答
问答排行榜
最热
最新

相关电子书

更多
搭建电商项目架构连接MySQL 立即下载
搭建4层电商项目架构,实战连接MySQL 立即下载
PolarDB MySQL引擎重磅功能及产品能力盛大发布 立即下载

相关镜像