工作记录:通过java代码执行sql脚本
在resources下面创建sql文件夹,存放需要执行的.sql文件,
通过java代码连接数据库、读取.sql文件,并执行。
工程打包成jar后,读取resources下的文件方式和开发环境不同,下面是打包jar后,读取sql文件的代码写法:
try {// 数据库连接信息String url = "jdbc:mysql://localhost:3306/test_platform?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8";// 登录名String userName = "temproot";// 密码String password = "Temproot";// 加载驱动Class.forName("com.mysql.cj.jdbc.Driver");// 连接数据库Connection connection = DriverManager.getConnection(url, userName, password);// 开发环境、正式环境,读取文件的方式不同ClassLoader classLoader = Thread.currentThread().getContextClassLoader();// 通过类加载器读取资源文件InputStream inputStream = classLoader.getResourceAsStream("/sql/test-platform.sql");// 确保inputStream不为nullif (inputStream == null) {throw new IllegalArgumentException("资源文件未找到");}// 读取sql文件//FileReader reader = new FileReader(sqlFile);// 执行sqlScriptRunner runner = new ScriptRunner(connection);runner.runScript(new InputStreamReader(inputStream, StandardCharsets.UTF_8));runner.closeConnection();connection.close();inputStream.close();} catch (Exception e) {e.printStackTrace();System.out.println("数据库初始化失败。。。。" + e.getMessage());}