java利用ibatis的ScriptRunner执行sql文件
来源:互联网 发布:java九大排序算法 编辑:程序博客网 时间:2024/05/19 19:58
1.maven引入相应jar包:
<dependency> <groupId>org.mybatis</groupId> <artifactId>mybatis</artifactId> <version>3.3.0</version> </dependency> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version>5.1.36</version> </dependency
2.使用实例如下:
package test;import java.io.FileInputStream;import java.io.InputStreamReader;import java.sql.Connection;import java.sql.DriverManager;import org.apache.ibatis.jdbc.ScriptRunner;import org.apache.log4j.Logger;/* * 当前设置能够保证文件的sql在同一个事务内执行,如果需要改变为错误仍然继续执行, * 只需修改参数: * conn.setAutoCommit(false);//改为true * runner.setAutoCommit(false);//该为true * runner.setStopOnError(true);//修改为false */public class ScriptRunnerExecSql { private static Logger LOG = Logger.getLogger(ScriptRunnerExecSql.class.getName()); /** * * @Title: execSqlFileByMysql * @Description: TODO() * @return void 返回类型 * @param ip * @param port * @param userName * @param pwd * @param sqlFilePath * @param dbName * @throws Exception */ public static void execSqlFileByMysql(String ip, String port, String userName, String pwd, String sqlFilePath, String dbName) throws Exception { String driver = "com.mysql.jdbc.Driver"; String url = "jdbc:mysql://" + ip + ":" + port + "/" + dbName; Exception error = null; Connection conn = null; try { Class.forName(driver); conn = DriverManager.getConnection(url, userName, pwd);// 设置不自动提交 conn.setAutoCommit(false); ScriptRunner runner = new ScriptRunner(conn);// 设置不自动提交 runner.setAutoCommit(false); /* * setStopOnError参数作用:遇见错误是否停止; * (1)false,遇见错误不会停止,会继续执行,会打印异常信息,并不会抛出异常,当前方法无法捕捉异常无法进行回滚操作,无法保证在一个事务内执行; * (2)true,遇见错误会停止执行,打印并抛出异常,捕捉异常,并进行回滚,保证在一个事务内执行; */ runner.setStopOnError(true); /* * 按照那种方式执行 * 方式一:true则获取整个脚本并执行; * 方式二:false则按照自定义的分隔符每行执行; */ runner.setSendFullScript(false);// 定义命令间的分隔符 runner.setDelimiter(";"); runner.setFullLineDelimiter(false);// 设置是否输出日志,null不输出日志,不设置自动将日志输出到控制台 runner.setLogWriter(null);// 如果又多个sql文件,可以写多个runner.runScript(xxx), runner.runScript(new InputStreamReader(new FileInputStream(sqlFilePath), "utf-8")); conn.commit(); } catch (Exception e) { conn.rollback(); LOG.error("执行sql文件进行数据库创建失败....", e); error = e; } finally { close(conn); } if (error != null) { throw error; } } private static void close(Connection conn) { try { if (conn != null) { conn.close(); } } catch (Exception e) { if (conn != null) { conn = null; } } } public static void main(String[] args) { try { execSqlFileByMysql("192.168.2.23", "3306", "root", "root", "C:\\Users\\Administrator\\Desktop\\business_collaboration.sql", "business_collaboration"); } catch (Exception e) { e.printStackTrace(); } }}
阅读全文
0 0
- java利用ibatis的ScriptRunner执行sql文件
- Java利用Ibatis的ScriptRunner解析sql
- 使用MyBatis的ScriptRunner执行sql文件
- 使用mybatis的ScriptRunner执行sql文件
- 使用MyBatis的ScriptRunner执行sql文件
- java 执行sql脚本的3种方式 (ant,ibatis,ScriptRunner)
- [转] java 执行sql脚本的3种方式 (ant,ibatis,ScriptRunner)
- java 执行sql脚本的3种方式 (ant,ibatis,ScriptRunner)
- 用ibatis的ScriptRunner执行sql程序 ,失效
- Java中获取Log4j日志文件,Mybatis 的ScriptRunner执行带pl/sql的 代码块脚本
- 利用 Ant 的 SQL Task 来实现自己的 Java 执行 SQL 脚本文件的功能
- 利用PHP执行.SQL文件
- 利用php执行sql文件
- ibatis中显示执行的SQL语句
- 打印ibatis执行时的sql
- log4j打印出ibatis的执行sql
- Ibatis如何打印要执行的SQL
- SQL 客户端执行快 java执行慢 ibatis
- 十大要避免的Ext JS开发方法
- C++容器类——沉寂的孤城
- ABAP: Search help in Dynpro
- JS中的!=、== 、!==、===的用法和区别。
- TCP流嗅探和连接跟踪工具tcpick
- java利用ibatis的ScriptRunner执行sql文件
- 对5种主流编程语言的吐槽
- Android adb 常用操作
- angularjs 服务_Srvice_Factory
- Python(四) Dict 和 Set
- 天天学Linux命令38--iostat命令
- ToastUtil吐司的工具类,防止多次吐司
- VAD综述
- Activity和fragment之间传递数据(二)