Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/design-patterns/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Spring boot 对Sql文件的Spring启动调用_Spring Boot_Spring Batch - Fatal编程技术网

Spring boot 对Sql文件的Spring启动调用

Spring boot 对Sql文件的Spring启动调用,spring-boot,spring-batch,Spring Boot,Spring Batch,我有一个关于调用sql文件的Spring引导逻辑的小问题。我知道,如果模式sql文件保存在SpringBoot应用程序项目的资源目录中,则会自动调用它们。 但是我想从另一个目录给他们打电话。我已经编写了下面的代码来尝试实现这一点,但失败了,并显示以下错误消息 代码: 错误消息:java.io.FileNotFoundException:无法打开类路径资源[C:/react file upload master/createConfigurationTableAndData.sql],因为它不存在

我有一个关于调用sql文件的Spring引导逻辑的小问题。我知道,如果模式sql文件保存在SpringBoot应用程序项目的资源目录中,则会自动调用它们。 但是我想从另一个目录给他们打电话。我已经编写了下面的代码来尝试实现这一点,但失败了,并显示以下错误消息

代码:

错误消息:java.io.FileNotFoundException:无法打开类路径资源[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将只指向类路径。假设您的文件不在类路径中

是的,我知道我的错误,并试图改变逻辑。我会更新你,一旦我尝试相同的。非常感谢。
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();
}