Java 执行SQL脚本文件
- 读取sql脚本文件时,需要通过ClassPathResource 来获取(其他方式服务器发布后可能会出现无法获取脚本的情况)
- 根据上步获取的inputStream 流创建InputStreamReader
- 根据Connection信息初始化创建ScriptRunner ,并执行
private void execute(String url, String rootName, String rootPwd, String dbName, String userName, String password, String port) {String connectUrl = "jdbc:mysql://" + url + ":" + port + "/?useUnicode=true&characterEncoding=UTF-8&useSSL=false&allowMultiQueries=true";Connection connection = null;try {Class.forName("com.mysql.jdbc.Driver");connection = DriverManager.getConnection(connectUrl, rootName, rootPwd);initTable(connection);} catch (SQLException | ClassNotFoundException | IOException e) {// 异常处理} finally {if (connection != null) {try {connection.close();} catch (SQLException e) {// 异常处理}}}}private void initTable(Connection connection) throws IOException {// sql 脚本ClassPathResource classPathResource = new ClassPathResource("sql/initTable.sql");InputStream inputStream = classPathResource.getInputStream();InputStreamReader inputStreamReader = new InputStreamReader(inputStream);ScriptRunner scriptRunner = new ScriptRunner(connection);// 必须设置该参数为true,否则无法执行begin……end;scriptRunner.setSendFullScript(true);scriptRunner.runScript(inputStreamReader);}
注意:当所要执行的sql脚本中包含begin……end;类的sql语句是,需要设置sendFullScript为true,否则会出现以下错误
Error executing: CREATE PROCEDURE `optimizet_procedure`()
beginoptimize table task
. Cause: com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '' at line 3
Error executing: end
. Cause: com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'end' at line 1
Java 执行SQL脚本文件相关推荐
- java sql脚本_Java 执行 SQL 脚本文件
是拷贝的别人的,以备学习 package com.unmi.db; import java.io.FileInputStream; import java.io.InputStream; import ...
- 如何在mysql中执行sql脚本文件
一.sql脚本文件 简介 xxxx.sql这种文件被称为sql脚本文件. sql脚本文件中编写了大量的sql语句. 我们执行sql脚本文件的时候,该文件中所有的sql语句会全部执行! 批量的执行SQL ...
- Delphi 7 在程序中直接执行SQL脚本文件
Delphi 7 在程序中直接执行SQL脚本文件 在处理MSDE一些操作中.需要执行一些SQL脚本.有的是从 SQLServer 2000中生成的SQL为后缀的脚本.在MSDE中没有企业管理器, 操作 ...
- Oracle 在Sqlplus 执行sql脚本文件。
首先在随便1个地方建立1个sql语句的文件. 例如: 执行命令为: sqlplus loginID/passwd@serverIP/servcie_name @path/file.name 例如: 见 ...
- source命令执行SQL脚本文件
2019独角兽企业重金招聘Python工程师标准>>> 运行mysql,可以使用"source"或"/."命令执行SQL脚本文件: mysql ...
- PLSQL执行SQL脚本文件「适用批量」- 工具使用篇
前言 开局一条狗,装备全靠打 这篇文章应该是 2019 年最后一文章了,分享一下 PLSQL 是如何执行 SQL 脚本文件的. 关于执行 SQL 文件,下方是自己经常使用的一种方式,同样适用于批量文件 ...
- oracle用命令执行sql脚本文件
当sql命令过多(sql文件过大)时,用plsql执行时比较慢而且容易超时,此时可以用sqlplus命令直接执行sql脚本文件,方法如下: 1.sqlplus登录 >sqlplus userna ...
- Mac OS 在远程主机(Linux 系统)上使用命令执行 sql 脚本文件(使用的是 MySQL 数据库)
文章目录 使用命令 mysql 执行脚本文件 连接远程主机后,直接使用命令 mysql 进入 MySQL 的 bin 目录后,再执行 mysql 命令 使用命令 source 执行脚本文件 sql 脚 ...
- Windows 使用命令执行 sql 脚本文件
文章目录 MySQL 数据库 方法一:使用 mysql 命令 方法二:使用 source 命令 Oracle 数据库 MySQL 数据库 方法一:使用 mysql 命令 未配置 MySQL 的环境变量 ...
- PL/SQL工具执行SQL脚本文件
方法一:在命令窗口中输入SQL>@E:\prestigereport.sql 方法二:工具菜单下的[导入表],选择SQL插入后选中需要导入的sql脚本文件.
最新文章
- TCP的3次握手和4次挥手过程
- 制定备份策略的指导方向思考
- comsol计算数据导出matlab,comsol4.2怎样在matlab中通过函数输出数据
- TensorFlow报错FutureWarning: Passing (type, 1) or '1type' as a synonym of type is deprecated......(亲测)
- db2 jdbc驱动参数_JDBC详细整理(一)
- css图片上漂浮着文字效果
- mysql的事务与锁机制
- mock gps android,MockGPS: Android application to fake GPS
- xapofx1_5.dll怎么安装
- GoF设计模式——单例模式(C++实现)
- matlab自回归模型AIC,时间序列笔记-自回归模型(二)
- adb 连接某个wifi_使用adb命令连接WiFi进行无线调试
- NopCommerce源码架构详解--TypeFinder程序集类型自动查找及操作相关源码分析
- 华为交换机配置ntp服务时间 自动同步不成功unsynchronized
- SVG 图标制作指南
- 学习PPT与Excel的各种高级应用并掌握相关技巧
- 零基础学习PS——Photoshop的167个技能
- pl sql 和if loop结构
- 爱思助手无法连接或者连接超时解决办法
- dnn分类鸢尾花 pytorch_从实例掌握 pytorch 进行图像分类
热门文章
- 苹果cms内核H5网页漫画小说系统源码支持三级分销与对接公众号
- 自我管理 写好工作周报
- 防止订单重复提交的2种技术解决方案
- 【软件】WPS VBA 7.0.1590(百度云免费下载链接)
- 用友u8怎么导出凭证_用友软件如何导出凭证模板?
- 阿里巴巴Java开发手册(泰山版)
- python中调用R语言包
- codejock Toolkit Pro for Visual C++ MFC 零售版
- UltraISO(制作U盘ISO启动镜像)制作U盘启动盘
- 数据库mysql报2005错_sql2005还原数据库错误的问题解决方法