Spring boot JPA:使用库批量加载 MySQL 的数据



我对 Spring 引导相当陌生。

我目前正在编写一个小型微服务,它将数据从 CSV 文件批量加载到 MySQL 数据库表中。我知道有很多方法可以实现这一点,但我想到的方法之一是使用 MySQL LOAD DATA FILE 命令解析 csv 文件并将数据加载到数据库表中。

想知道是否有人知道我可以使用 Spring 启动 JPA 库调用 MySQL LOAD DATA 命令的方法?

任何帮助/建议不胜感激。

谢谢

找到了问题的解决方案:

@Modifying@Transactional注释添加到存储库中的方法中。下面是一个示例:

@Repository
public interface ExpenseRepository extends CrudRepository<Expense, Integer>{
    @Modifying
    @Transactional
    @Query (value="LOAD DATA LOCAL INFILE 'C:/Users/Tester/Documents/transaction_data.txt' INTO TABLE tbl_fin FIELDS TERMINATED BY ',' IGNORE 1 LINES", nativeQuery = true)
    public void bulkLoadData();
}

如果您遇到以下错误

java.sql.SQLSyntaxErrorException:此MySQL版本不允许使用的命令

不要忘记允许加载本地文件,因为它默认处于禁用状态。添加到spring.datasource.url:&allowLoadLocalInfile=true,并使用以下命令在本地MySQL配置中启用它:SET GLOBAL local_infile = 1;

最新更新