java 执行 sql 文件报错 求大神帮忙解决 急急急!!!!

问题描述

java 执行 sql 文件报错 求大神帮忙解决 急急急!!!!

sql文件里边的内容
/*
Navicat MySQL Data Transfer

Source Server : localhost_3306
Source Server Version : 50096
Source Host : localhost:3306
Source Database : cemscenter1

Target Server Type : MYSQL
Target Server Version : 50099
File Encoding : 65001

Date: 2015-04-22 10:09:37
*/

SET FOREIGN_KEY_CHECKS=0;


-- Procedure structure for QueryLimberWaterHourData


DROP PROCEDURE IF EXISTS QueryLimberWaterHourData;
DELIMITER ;;
CREATE DEFINER=root@localhost PROCEDURE QueryLimberWaterHourData()
BEGIN
select * from temp_waterhourdata;
END
;;
DELIMITER ;

这个sql文件在Navicat里边执行可以成功
在java程序里用 SQLExec 执行就报错
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 'DELIMITER' at line 1

java 代码
SQLExec sqlExec = new SQLExec();
sqlExec.setDriver("com.mysql.jdbc.Driver");
sqlExec.setUrl("jdbc:mysql://localhost:3306/test");
sqlExec.setUserid("root");
sqlExec.setPassword("ssdlh");

sqlExec.setSrc(new File("src/process"+name+".sql"));

sqlExec.setOnerror((SQLExec.OnError)(EnumeratedAttribute.getInstance(
SQLExec.OnError.class, "abort")));
sqlExec.setPrint(true);

sqlExec.setOutput(new File("src/sql.out"));

sqlExec.setProject(new Project());

try{
sqlExec.execute();

解决方案

这不是sql语句,当然不能执行

解决方案二:

用sqlExec.setDelimiter代替

解决方案三:

 DELIMITER ;;
这只有mysql Workbench执行的时候需要吧,java执行应该不需要的。

解决方案四:

delimiter ;;
多了一个分号;

解决方案五:

你写的好像是mysql存储过程,所以我觉得应该用java CallabeStatement对应的API去调用,不能当作简单的jdbc sql语句去执行。
建议你把java代码也贴出来这样好查找错误。

解决方案六:

你可以看看这个链接:http://www.zhujiangroad.com/program/JAVA/2352.html

时间: 2024-08-29 04:12:45

java 执行 sql 文件报错 求大神帮忙解决 急急急!!!!的相关文章

树形 递归-java 递归报错 求大神帮忙

问题描述 java 递归报错 求大神帮忙 private List<Post> getPostLower(List<Post> PostTops){ List<Post> postAll=new ArrayList<Post>(); // 上级 for(Post post:PostTops){ //查询到下级 List<Post> posts=basService.queryPostByParentId(post.getPostId()); //

java-ofbiz首次导入eclipse文件报错,求大神指导下

问题描述 ofbiz首次导入eclipse文件报错,求大神指导下 都是 .getServletContext().getContextPath()); 这一句报错,是什么原因呢?如何解决? 解决方案 这个是JDK版本问题,不用管. 解决方案二: http://blog.csdn.net/jeff06143132/article/details/18814989 这里有介绍 groovy的问题

myeclipse-Myeclipse 运行web项目是报错 求大神帮忙看看

问题描述 Myeclipse 运行web项目是报错 求大神帮忙看看 2016-4-6 22:55:56 org.apache.catalina.core.AprLifecycleListener init 信息: The APR based Apache Tomcat Native library which allows optimal performance in production environments was not found on the java.library.path:

druid-sql报错,求大神帮忙看看,在线等!

问题描述 sql报错,求大神帮忙看看,在线等! Caused by: java.sql.SQLException: sql injection violation, syntax error: TODO : LITERAL_INT top : select top 20 * from (select row_number() over ( order by name asc ) row_number, * from (select id,name,display_Name,type,instan

javase-Java连接derby报错,求大神帮解决下~

问题描述 Java连接derby报错,求大神帮解决下~ 解决方案 http://tieba.baidu.com/p/1415330675 用SYS登录时不可以进行建表操作,看样子derby的确有权限控制存在.哼哼哼哼--- 另,用户名中不能存在字符,刚才在用户名中包含了一个;号,结果出现了 错误 58009:网络协议异常:在 DSS 链中的下一个 DSS 段与当前段具有相同的标识号.连接已终止.错误 08004:发生连接认证失败.原因:用户无权访问数据库. 这样的错误 解决方案二: http:/

上传数据报错 求大神帮忙解决

问题描述 上传数据报错 求大神帮忙解决 解决方案 有可能是服务器出现了错误,你可以重新试试. 解决方案二: ajax方法在解析数据的时候报错了,有语法错误导致不能正确解析,看提示应该是多了个"<"或者少一个.

java jsch 摩托设备-jsch怎么连接摩托设备?求大神帮忙,急急急。。。

问题描述 jsch怎么连接摩托设备?求大神帮忙,急急急... 因为摩托的设备登入方式是:ssh userName@IP,比其他设备的登入方式多了userName (其他设备的登入方式,如华三:ssh IP),所以在用jsch连接的时候,不知道要从哪里注入userName 这个参数. 官网的例子代码如下: package com.zzl; /* -*-mode:java; c-basic-offset:2; indent-tabs-mode:nil -*- / /* This program en

opc客户端连接问题,求大神帮忙,急急急!!!

问题描述 Opc.Server[]servers=m_discovery.GetAvailableServers(Specification.COM_DA_20,'XXXXX',null);这样连接服务,报错:无法将类型为"System.__ComObject"的COM对象强制转换为接口类型"OpcRcw.Comn.IOPCServerList2".此操作失败的原因是对IID为"{9DD0B56C-AD9E-43EE-8305-487F3188BF7A}&

EaseUI3.0集成报错 求大神帮忙看下

问题描述 解决方案 在报错的文件中导入头文件#import "EMClient.h"#import "EMClientDelegate.h"