在开发中,有一种场景是需要触发执行sql脚本。以下使用mybatis提供的ScriptRunner方法执行数据库脚本。
代码示例如下:
private DataSource dataSource;
@Autowired
public ConsoleTenantServiceImpl(DataSource dataSource) {
this.dataSource = dataSource;
}
public void initializeData() {
Connection connection = null;
try {
connection = dataSource.getConnection();
connection.setAutoCommit(false);
Reader reader = new FileReader("init.sql");
ScriptRunner scriptRunner = new ScriptRunner(connection);
scriptRunner.setStopOnError(true);
scriptRunner.setSendFullScript(true);
scriptRunner.setSendFullScript(false);
scriptRunner.runScript(reader);
connection.close();
} finally {
if (connection != null) {
connection.close();
}
}
}