springboot启动运行.sql文件自动建表
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; /** * springboot启动运行.sql文件自动建表 */ @Configuration public class InitSqlTableClass { // 这里从.yml配置文件读取数据库连接配置 @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 { // 放在项目中.sql文件的路径 String path = "src/main/resources/sql"; // 连接数据库 Connection conn = DriverManager.getConnection(url, username, password); // 创建ScriptRunner,用于执行SQL脚本 ScriptRunner runner = new ScriptRunner(conn); runner.setErrorLogWriter(null); runner.setLogWriter(null); // 获取项目中的所有要执行的sql文件 File[] files = new File(path).listFiles(); assert files != null; for (File file : files) { // 执行SQL脚本 runner.runScript(new InputStreamReader(new FileInputStream(file), StandardCharsets.UTF_8)); } } conn.close(); } }
下一篇:
判断语句if以及逻辑运算符