gpt4 book ai didi

java - 使用 JdbcBatchItemWriter 更新重复键

转载 作者:塔克拉玛干 更新时间:2023-11-02 19:25:53 25 4
gpt4 key购买 nike

我的项目使用 spring Batch,我只是尝试使用 JdbcBatchItemWriter 作为编写器从 csv 文件读取数据并将数据加载到数据库。

我正在寻找一种方法来告诉作者插入一个新行,但是,在重复的键(或重复的唯一标识符)上更新行而不是失败。

我知道我可以直接在 sql 语句中执行此操作,但这是特定于 Mysql 的,尽管我希望我的代码独立于 DBMS。

这是我在 java 配置中的 writer 声明

@Bean
@StepScope
public ItemWriter<Person> writerHeadingCollectionsToDb(DataSource datasource) {

String sqlStatement = "INSERT INTO abcd(id, first_name, last_name, phone_number"
+ "VALUES (:id, :firstName, :lastName, :phoneNumber)";


JdbcBatchItemWriter<Person> itemWriter = new JdbcBatchItemWriter<Person>();
itemWriter.setSql(sqlStatement );
itemWriter.setDataSource(dataSource);
itemWriter.setItemSqlParameterSourceProvider(new BeanPropertyItemSqlParameterSourceProvider<Person>());
return itemWriter;
}

预先感谢您的帮助

最佳答案

这很简单:
写一个自定义ItemWriter<>write()方法进行插入,如果重复 - 进行更新;检查 dup 键是否使用查找或重复异常捕获。

关于java - 使用 JdbcBatchItemWriter 更新重复键,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21532058/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com