springboot启动运行.sql文件自动建表
import org.apache.ibatis.jdbc.ScriptRunner;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.Configuration;
import javax.annotation.PostConstruct;
import javax.annotation.Resource;
import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStreamReader;
import java.nio.charset.StandardCharsets;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.util.List;
@Configuration
public class InitSqlTableClass {
@Value("${spring.datasource.name}")
private String name;
@Value("${spring.datasource.url}")
private String url;
@Value("${spring.datasource.username}")
private String username;
@Value("${spring.datasource.password}")
private String password;
@PostConstruct
public void test() throws IOException, SQLException {
String path = "src/main/resources/sql";
Connection conn = DriverManager.getConnection(url, username, password);
ScriptRunner runner = new ScriptRunner(conn);
runner.setErrorLogWriter(null);
runner.setLogWriter(null);
File[] files = new File(path).listFiles();
assert files != null;
for (File file : files) {
runner.runScript(new InputStreamReader(new FileInputStream(file), StandardCharsets.UTF_8));
}
}
conn.close();
}
}
转载请注明原文地址:https://ipadbbs.8miu.com/read-58602.html