java 执行sql文件
时间:2022-05-07
本文章向大家介绍java 执行sql文件,主要内容包括# 背景、# 步骤、基本概念、基础应用、原理机制和需要注意的事项等,并结合实例形式分析了其使用技巧,希望通过本文能帮助到大家理解应用这部分内容。
# 背景
用例执行完毕,期望回滚数据,因此希望执行sql来回滚数据
# 步骤
直接show代码,借助的是mybatis的ScriptRunner
/**
* 执行xx库下的表备份脚本
*
* @param tableName
*/
public static void runSqlInStat(String tableName) {
String className = Configurations.INSTANCE.get("jdbc.xx.driver");
String dbUrl = Configurations.INSTANCE.get("jdbc.xx.url");
String dbUsername = Configurations.INSTANCE.get("jdbc.xx.username");
String dbPassword = Configurations.INSTANCE.get("jdbc.xx.password");
try {
Class.forName(className);
Connection conn = DriverManager.getConnection(dbUrl, dbUsername, dbPassword);
ScriptRunner runner = new ScriptRunner(conn);
runner.setAutoCommit(true);
String fileName = String.format("src/main/resources/db/%s.sql", tableName);
File file = new File(fileName);
try {
if (file.getName().endsWith(".sql")) {
runner.setFullLineDelimiter(false);
runner.setDelimiter(";");//语句结束符号设置
runner.setLogWriter(null);//日志数据输出,这样就不会输出过程
runner.setSendFullScript(false);
runner.setAutoCommit(true);
runner.setStopOnError(true);
runner.runScript(new InputStreamReader(new FileInputStream(fileName), "utf8"));
logger.info(String.format("【%s】回滚成功", tableName));
}
} catch (Exception e) {
e.printStackTrace();
}
conn.close();
} catch (SQLException e) {
e.printStackTrace();
} catch (ClassNotFoundException e) {
e.printStackTrace();
}
}
- java教程
- Java快速入门
- Java 开发环境配置
- Java基本语法
- Java 对象和类
- Java 基本数据类型
- Java 变量类型
- Java 修饰符
- Java 运算符
- Java 循环结构
- Java 分支结构
- Java Number类
- Java Character类
- Java String类
- Java StringBuffer和StringBuilder类
- Java 数组
- Java 日期时间
- Java 正则表达式
- Java 方法
- Java 流(Stream)、文件(File)和IO
- Java 异常处理
- Java 继承
- Java 重写(Override)与重载(Overload)
- Java 多态
- Java 抽象类
- Java 封装
- Java 接口
- Java 包(package)
- Java 数据结构
- Java 集合框架
- Java 泛型
- Java 序列化
- Java 网络编程
- Java 发送邮件
- Java 多线程编程
- Java Applet基础
- Java 文档注释
- 【python设计模式-创建型】建造者模式
- TypeScript手记(六)
- python之多继承中的一些问题
- python之__new__方法
- c语言之使用typedef定义类型
- 代数效应与React
- spring之在配置Bean时如何关联不同的Bean
- spring之级联属性赋值的两种方式
- hz(赫兹)
- spring之为java.util.Properties类型的属性进行赋值
- python之类也是一个对象
- spring之使用命名空间p来简化bean的配置
- SpringBoot 2.X中的@Async和Java8中的completableFuture的使用比较
- c语言之创建字符串的两种方式
- 机器学习-文本分类(1)之独热编码、词袋模型、N-gram、TF-IDF