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 路径中。
我有一个关于调用 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 路径中。