【问题标题】:How to import data from CSV file into MySQL database如何将 CSV 文件中的数据导入 MySQL 数据库
【发布时间】:2011-12-01 07:36:22
【问题描述】:

我必须使用 JSP/Servlet 将数据从 CSV 文件导入 MySQL 数据库。在搜索时我得到了this link!据说我们可以在hibernates createSQLQuery中使用MySQL命令“LOAD DATA INFILE ...”。

但在我的情况下,我需要上传数据的表分布在多个数据库服务器上。我将获得一个 API,通过它我可以连接到数据库。

我的问题是,我应该将 CSV 文件保存在哪里——在我的 tomcat 服务器或我将执行“LOAD DATA INFILE ...”命令的系统上。

【问题讨论】:

  • 要将问题标记为已回答,只需设置一个已接受的答案,不要像在老式论坛中那样在标题中加上“已解决”。这是没有意义的。 Stack Overflow 已经是一个问答网站。已接受答案的问题已在列表中以不同方式显示,可通过 accepted:1 搜索。

标签: mysql jsp servlets


【解决方案1】:

CSV 文件应保存在运行 MySQL DB 的服务器上。还应设置访问权限,以允许运行 MySQL 服务器的用户访问此文件。

您可能还会发现article on LOAD DATA INFILE from MySQL docs 很有用。

【讨论】:

  • 感谢您的快速回复。但我只会获得与该数据库的连接。我将无权将文件保存在该系统上。有什么办法可以直接将 CSV 数据加载到 MySQL 数据库中?
  • 不幸的是,没有(至少,我不知道)。您必须在客户端解析 CSV 或编写一个存储过程来解析数据库级别的传入文本。我建议在客户端进行解析,MySQL 服务器在字符串操作方面似乎不是很快和/或效率很高。如果有人知道另一种方式,我很乐意学习。
  • 更新:MySQL 文档说可以在 LOAD DATA 之后指定 LOCAL 关键字 - 它会强制客户端从客户端文件系统读取文件,将其传递给服务器(它将保存在服务器 /tmp或其他临时目录)并使用通常的LOAD DATA 语句读取。所以你应该做LOAD DATA LOCAL INFILE 'file_name' INTO ...
  • 感谢您的回复。我会检查它并让你知道结果。
  • 感谢 '@Sergey' 您对在 'LOAD DATA' 中使用 'LOCAL' 关键字的建议非常有效。
猜你喜欢
  • 2017-11-15
  • 1970-01-01
  • 1970-01-01
  • 2012-01-22
  • 1970-01-01
  • 1970-01-01
  • 2014-05-03
  • 2017-01-21
相关资源
最近更新 更多