Spring 对 Sql 文件的引导调用

Spring boot call to a Sql file

我有一个关于调用 sql 文件的 Spring 启动逻辑的小问题。我知道如果模式 sql 文件保存在 spring 启动应用程序项目的资源目录中,它们将被自动调用。 但我想从不同的目录调用它们。我已经编写了以下代码来尝试实现该目标,但失败并显示以下错误消息。

代码:

public void executeSqlScript()throws SQLException{
  Connection connection = dataSource.getConnection();
  connection.setAutoCommit(false);
  ScriptUtils.executeSqlScript(connection, new EncodedResource(new ClassPathResource("C:\react-file-upload-master\createConfigurationTableAndData.sql")));
  connection.commit();
}

错误消息:java.io.FileNotFoundException:class 路径资源 [C:/react-file-upload-master/createConfigurationTableAndData.sql] 无法打开,因为它不存在。

它没有读取我的目录。如果您能就此对我进行教育,那就太好了。谢谢。

尝试使用 FileSystemResource 而不是 ClassPathResource 并给出绝对路径。

public void executeSqlScript()throws SQLException{
  Connection connection = dataSource.getConnection();
  connection.setAutoCommit(false);
  ScriptUtils.executeSqlScript(connection, new FileSystemResource("C:\react-file-upload-master\createConfigurationTableAndData.sql"));
  connection.commit();
}

因为 ClassPathResource 将仅指向 class 路径。假设您的文件不在 class 路径中。