使用Java从.SQL文件中提取SQL命令
我需要使用java从.SQL文件中获取SQL命令 该文件包含开头带有“-”的行,因此理想情况下它会忽略这些行 我已经研究过如何使用.useDelimiter((;(\r)?\n)(-\n)” 我需要使用一个while循环来读取文件并查找SQL命令,并在找到它们时执行它们。我所看到的例子似乎不是很有效使用Java从.SQL文件中提取SQL命令,java,sql,Java,Sql,我需要使用java从.SQL文件中获取SQL命令 该文件包含开头带有“-”的行,因此理想情况下它会忽略这些行 我已经研究过如何使用.useDelimiter((;(\r)?\n)(-\n)” 我需要使用一个while循环来读取文件并查找SQL命令,并在找到它们时执行它们。我所看到的例子似乎不是很有效 在此方面的任何帮助都将不胜感激:)你确定你真的想要这个吗?使用特定于DB的命令行实用程序运行此脚本要容易得多 例如,对于MySql,命令行是MySql-uUSER-pPASSWORD
在此方面的任何帮助都将不胜感激:)你确定你真的想要这个吗?使用特定于DB的命令行实用程序运行此脚本要容易得多 例如,对于MySql,命令行是
MySql-uUSER-pPASSWORD
它简单、快速且100%有效。如果要从java运行它,请使用Runtime.getRuntime().exec()
或ProcessBuilder
逐行读取SQL文件并忽略注释(使用正则表达式“^--”或
line.startsWith(“--”)不是问题
。查找每个SQL语句的开头和结尾是一个问题。此外,您不能单独从脚本运行语句。SQL支持变量。一个语句可以定义变量,另一个语句可以使用它。另请参见@Matt Fenwick写的内容。这是一个看似简单的问题,可能很快失控。SQL实际上有一个非常复杂的语法,允许语句跨越多行、注释。很难在简单的while循环中处理。请查看更健壮的解决方案。也许这是一个选项?