我必须构建一个 SQL 查询,其中我必须替换字符串中的两个参数。
- 表示路径的字符串变量CLEAN_CSV_PATH
- 字符串变量 LINES_TERMINATED_OS 表示 Windows 或 Linux 所需的转义字符\r\n,具体取决于情况。
参数在 Main 执行期间通过 Scanner 类提供。
这是我的 SQL 字符串:
private static String LOAD_ALL_ALIASES = //
"LOAD DATA LOCAL INFILE '" + CLEAN_CSV_PATH + "' INTO TABLE plantbiocore.Alias " //
+ "FIELDS TERMINATED BY ',' " //
+ "OPTIONALLY ENCLOSED BY '\"' "
+ "LINES TERMINATED BY '" + LINES_TERMINATED_OS + "'"
+ "IGNORE 1 LINES " //
+ "(locus_id, organism_id, variable, alias) "; //
Scanner scanner = new Scanner(System.in);
CLEAN_CSV_PATH = scanner.next() // Here the CLEAN_CSV_PATH does not appear in my LOAD_ALL_ALIASES
最佳答案
你需要的是java中的PreparedStatement。 google一下,有很多使用这个类的例子。 另一个问题是您在使用 CLEAN_CSV_PATH 设置 LOAD_ALL_ALIASES 之后设置它。它不能在 Java 中工作。
关于Java - 如何在运行时动态设置字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48927950/