从文件到java再到mysql数据库的数据解析

从文件到java再到mysql数据库的数据解析,java,mysql,jdbc,Java,Mysql,Jdbc,我有上述格式的.Data文件。我正在用java编写一个程序,它将从.data文件中获取值并将其放入缓冲区。我的java程序通过JDBC连接到Mysql(windows)。因此,我需要从上述格式的文件中读取值,并将其放入类似于 Insert Into building values ("--", "---",----) 通过这种方式,我存储这些值,jdbc将填充Mysql(windows)上的数据库表。请告诉我最好的方法。查看的答案,以便阅读文件行并将其拆分为块。我知道问题的答案是Groovy

我有上述格式的.Data文件。我正在用java编写一个程序,它将从.data文件中获取值并将其放入缓冲区。我的java程序通过JDBC连接到Mysql(windows)。因此,我需要从上述格式的文件中读取值,并将其放入类似于

Insert Into building values ("--", "---",----) 
通过这种方式,我存储这些值,jdbc将填充Mysql(windows)上的数据库表。请告诉我最好的方法。

查看的答案,以便阅读文件行并将其拆分为块。我知道问题的答案是Groovy:但大多数答案都是Java。然后插入通过JDBC检索到的值


实际上,由于您的数据文件显然是CSV,您也可以使用CSV库来读取值。

您可以使用opencsv将CSV与java bean绑定。


您可以使用ORM框架(如Hibernate、Cayenne或基于注释的JPA)使这些bean持久化,并且无需创建任何sql语句即可轻松将字段映射到表。

数据是CSV格式的,因此使用CSV库解析文件,然后添加一些JDBC代码将其插入数据库

或者直接从Java调用:

try {
    // Execute a command with arguments
    String command = "mysqlimport [options] db_name textfile1 [textfile2 ...]";
    Process child = Runtime.getRuntime().exec(command);

} catch (IOException e) {
}

这将是Groovy的完美工作。这是一个。

这是同一任务的第四个问题。。。如果数据文件的格式与您提供的示例中的格式相同,则不必将行拆分为值:

Source:   "AAH196","Austin","TX","Virginia Beach","VA"
Target:   INSERT INTO BUILDING VALUES("AAH196","Austin","TX","Virginia Beach","VA");
      <=> "INSERT INTO BUILDING VALUES(" + Source + ");"
来源:“AAH196”、“奥斯汀”、“德克萨斯州”、“弗吉尼亚海滩”、“弗吉尼亚州”
目标:在建筑价值中插入(“AAH196”、“奥斯汀”、“德克萨斯”、“弗吉尼亚海滩”、“弗吉尼亚”);
“插入到建筑值(“+Source+”)
只需从csv文件中提取一整行并连接一个SQL表达式


(-BTW,如果SQL注入是一个潜在问题,那么拆分一行值也不是一个解决方案)

文件采用.data格式。虽然它们是用逗号分隔的,但我无法将名称更改为.csv文件。请详细说明文件名是不相关的,但CSV表示逗号分隔的值,实际上就是这种情况。CSVReader reader=new CSVReader(new FileReader(“yourfile.CSV”);在这种情况下,使用.csv。但在我的文件中,它是.data。我不应该改变它。文件名只是惯例而已。这样做:
CSVReader reader=newcsvreader(newfilereader(“yourfile.data”),它会工作的。当然。对于这项任务,我同意。我说的是更大的范围。我通过实践学习Java(以前编写过PHP、PERL和其他被黑客攻击的语言),我花了几年时间才意识到我所犯的所有错误。当你有时间的时候(也许是在作业之后),按照教程阅读Joshua Bloch的Efficient Java。+1 for MySQL CSV导入命令(尽管我会跳过中间人,直接称之为无Java),这对于介绍性编程作业来说有点重,不是吗?