工作记录:通过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不为null
if (inputStream == null) {
throw new IllegalArgumentException("资源文件未找到");
}
// 读取sql文件
//FileReader reader = new FileReader(sqlFile);
// 执行sql
ScriptRunner 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());
}