数据从文件解析为java然后进入mysql数据库

时间:2010-11-05 08:45:56

标签: java mysql jdbc

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

这样的缓冲区中
Insert Into building values ("--", "---",----) 

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

5 个答案:

答案 0 :(得分:1)

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

实际上,由于您的数据文件显然是CSV,因此您还可以使用像OpenCSV这样的CSV库来读取值。

答案 1 :(得分:1)

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

或者只是从Java调用MySQL CSV import command

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

} catch (IOException e) {
}

答案 2 :(得分:1)

这是同一任务的第四个问题...如果您的数据文件格式正确,就像您提供的示例一样,那么您不必将行拆分为值:< / p>

Source:   "AAH196","Austin","TX","Virginia Beach","VA"
Target:   INSERT INTO BUILDING VALUES("AAH196","Austin","TX","Virginia Beach","VA");
      <=> "INSERT INTO BUILDING VALUES(" + Source + ");"

从你的csv文件中取一个完整的行并连接一个SQL表达式。

see my answer to question 1 of 4 - BTW,如果 SQL INJECTION是一个潜在的问题,拆分一行值也不是解决方案。

答案 3 :(得分:0)

您可以使用opencsv将csv绑定到java bean。 http://opencsv.sourceforge.net/

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

答案 4 :(得分:0)

这对Groovy来说是一个完美的工作。这是一个gist with a small skeleton script to build upon