1.首先建立数据库连接,配置基本的url,drive,username和password,将Connection设置成不自动提交,这样才可以使用conn.rollback回滚功能
boolean lockSuccess=lock.tryLock();
//执行sql脚本时最好加锁
if(lockSuccess){
Connection conn = null;
try{
Class.forName(driver);
conn = DriverManager.getConnection(url, userName, password);
// 设置不自动提交
conn.setAutoCommit(false);
2.声明一个ScriptRunner对象,执行sql脚本
ScriptRunner runner = new ScriptRunner(conn);
// 设置不自动提交
runner.setAutoCommit(false);
//遇见错误是否停止(1)false,遇见错误不会停止,会继续执行,会打印异常信息,并不会抛出异常,当前方法无法捕捉异常无法进行回滚操作,无法保证在一个事务内执行;(2)true,遇见错误会停止执行,打印并抛出异常,捕捉异常,并进行回滚,保证在一个事务内执行
runner.setStopOnError(true);
//按照那种方式执行 方式一:true则获取整个脚本并执行; 方式二:false则按照自定义的分隔符每行执行
runner.setSendFullScript(false);
//设置是否输出日志,null不输出日志,不设置自动将日志输出到控制台
runner.s

本文介绍了如何利用MyBatis的ScriptRunner类在启动时自动部署数据库,通过建立数据库连接,配置连接参数,设置不自动提交,确保在事务内执行SQL脚本。执行过程中,如果遇到错误,会停止执行并回滚,以保证数据一致性。最后,文章还详细说明了资源的关闭和锁的释放过程。
最低0.47元/天 解锁文章
436

被折叠的 条评论
为什么被折叠?



