Java 从文件创建存储过程

Java 从文件创建存储过程,java,mysql,stored-procedures,jdbc,liquibase,Java,Mysql,Stored Procedures,Jdbc,Liquibase,我试图在Java中执行整个目录的.SQL文件 我正在努力执行存储过程。遗憾的是,我发现迄今为止最有用的方法包括一个死链接。我也下载了liquibase,但我不知道该如何使用它 在我当前的代码中,我将包括过程在内的文件拆分为不同的语句: 语句拆分为向量[String]并在for循环中执行 例如: //文件f; //报表st; Vector vProcedure=GetProcedureRecreamentSF,Charset.defaultCharset,//; 对于迭代器itr=vProcedu

我试图在Java中执行整个目录的.SQL文件

我正在努力执行存储过程。遗憾的是,我发现迄今为止最有用的方法包括一个死链接。我也下载了liquibase,但我不知道该如何使用它

在我当前的代码中,我将包括过程在内的文件拆分为不同的语句:

语句拆分为向量[String]并在for循环中执行

例如:

//文件f; //报表st; Vector vProcedure=GetProcedureRecreamentSF,Charset.defaultCharset,//; 对于迭代器itr=vProcedure.Iterator;itr.hasNext; 下一届圣executeitr; System.out.printlnf.getName+-执行完毕。; 该向量包含四个元素,请参见SQL代码拆分x

如果存在“添加位置”,则删除程序;第1部分 分隔符//拆分2 创建程序“添加位置”` 在iO_ID INT中, 在iCID INT中, 在iWID INT中, 在iA INT中 开始 声明; 终止 //第三部分 定界符;第4部分 尝试执行拆分2时:

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
问:有谁能告诉我,我是否可以使用外部库,或者liquibase是如何工作的?我不能让它以JDBC的方式工作。

语句分隔符\\实际上不是SQL-它是一个由mysql命令行工具解释的命令,可能也是他们的GUI工具,但是如果直接将它传递给执行引擎,就会出现此语法错误


不幸的是,液化酶使用;作为默认的语句分隔符,使用SQL文件和Liquibase很难实现这类功能。我已经输入了一个pull请求,以允许从Liquibase命令行设置分隔符-请参阅

为了理解,您需要将.sql文件拆分为独立语句,然后执行每个语句。你犯了什么错误?您使用的是什么JDBC调用?下面是一些示例JDBC代码,你对我来说是什么意思?我不能用JDBC的方式工作。更新了我的问题。顺便说一下,这在16小时前就已经修复了。我删除了所有分隔符语句,并在GetProcedurereaments中读入了整个过程语句。这样它在JDBC中执行。