我目前有一个简单的程序,可将数据插入mysql数据库表,如下所示:
System.out.println("New path created: " + newPath);
String newPathfinal = newPath.toString();
try (Connection connection = DBConnection.getConnection())
{
String file = "C:/Users/User/Desktop/Test/" + newPathfinal;
String loadQuery = "LOAD DATA LOCAL INFILE '" + file + "' INTO TABLE txn_tbl FIELDS TERMINATED BY ','"
+ " LINES TERMINATED BY '\n' " + "IGNORE 1 LINES(txn_amount, card_number, terminal_id)";
System.out.println(loadQuery);
Statement stmt = connection.createStatement();
stmt.execute(loadQuery);
System.out.println("Data import success");
}
catch (Exception e)
{
e.printStackTrace();
}
但是,传入文件的名称不同,它们的内容也不同(列不同),因此我想按名称将文件过滤到不同的LOAD DATA LOCAL INFILE命令中,以便可以正确插入数据。
我一直在考虑使用简单的if-else语句,因为我将文件名递减为String,但是我意识到if-else语句将FULL文件名作为条件,并且在我想按部分过滤的情况下不起作用文档名称。像这样:if(newPathfinal == “apple" {}
我希望将包含“苹果”一词的所有文件导入到某个表中。
例如,假设我想将名称从“ java”开始的文件(例如java_1)导入到mySQL表java1中。并将名为“ apple”的文件(例如apple_1)插入apple1。java_2和apple_2继续被导入,我需要将它们相应地过滤到正确的LOAD DATA LOCAL INFILE语句中,以将它们的数据插入正确的表中。
有什么办法可以按部分文件名过滤?我阅读了jfilechooser和fileFilter,但是这些文件似乎都集中在文件扩展名上,这不是我关注的领域,因为文件都是相同的.csv格式。
再次非常感谢!
听起来您想使用该startsWith
方法。
if (newPathFinal.startsWith("java"))
{
// do java stuff
}
else if (newPathFinal.startsWith("apple"))
{
// do apple stuff
}
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句