我需要使用 java 从 .sql 文件获取 SQL 命令。
该文件包含开头带有“--”的行,因此理想情况下它会忽略这些行。
我研究过使用 .useDelimiter("(;(\r)?\n)|(--\n)");
我需要使用 while 循环来读取文件并查找 SQL 命令并在找到它们时执行它们。我看过的例子似乎不是很有效。
对此的任何帮助将不胜感激:)
最佳答案
你确定你真的想要这个吗?使用数据库特定的命令行实用程序运行此脚本要容易得多。
例如,对于 MySql,命令行是 mysql -uUSER -pPASSWORD < a.sql
它简单、快速并且 100% 有效。如果你想从 java 运行它,请使用 Runtime.getRuntime().exec()
或ProcessBuilder
.
逐行读取SQL文件并忽略注释(使用正则表达式 '^--' 或 line.startsWith("--")
都不是问题。找到每个SQL语句的开头和结尾是一个问题.而且你不能单独运行脚本中的语句。SQL支持变量。一个语句可以定义变量,其他语句可以使用它。另请参阅@Matt Fenwick写的内容。
关于java - 使用 Java 从 .sql 文件中提取 SQL 命令,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7969597/