java – JDBC:CSV原始数据使用流从/向远程MySQL数据库导出/导入(SELECT INTO OUTFILE
我正在开发的Web应用程序支持CSV导出(使用SELECT INTO OUTFILE)并导入(使用LOAD DATA INFILE)MySQL服务器来维护庞大的数据集,这些数据集在Java代码中使用SELECT和批量INSERT语句进行处理非常昂贵(处理结果集,字符串编码,业务逻辑遗产等).这些CSV文件不是应用程序驱动的,因此它们只代表MySQL数据库中的原始表内容.但据我所知,这种方法只有在我有本地文件时才有用,所以web应用服务器和mysqld都必须在同一台机器上运行. 应用程序配置可以指定远程数据库连接.这显然意味着上传的CSV文件存储在运行Web应用程序的机器本地的某处,因此我无法在MySQL LOAD DATA INFILE语句中指定数据文件位置. (相同的方案是CSV下载请求).所以,我想要找到的是一种“虚拟”指定CSV文件的方法 – 使用可由JDBC和MySQL处理的I / O流,类似于blob管理等. JDBC / MySQL是否支持这种用于导入和导出的CSV文件的技术? 提前致谢. 最佳答案 您可以使用LOCAL选项运行LOAD DATA INFILE,然后使用com.mysql.jdbc.Statement #setLocalInfileInputStream从运行MySQL JDBC客户端的位置加载CSV文件.例如:
有关更多信息,请参见this post. 不幸的是,从this answer on Stack Overflow开始,您似乎无法使用SELECT INTO OUTFILE将文件导出到数据库服务器以外的任何位置. (编辑:台州站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- 如何调试JPA CriteriaBuilder查询
- 如何获得最新的mySQLdump工具
- mysql – QueryException SQLSTATE [HY000] [1045]拒绝访问
- php – Laravel查询生成器常规错误2031
- 无法连接到Mysql服务器;无法创建/写入pid文件
- PHP或MySQL中的业务逻辑?
- 从MySQL WorkBench中的SQL脚本生成图表
- python – AttributeError:’long’对象没有属性’fetchal
- mysql – 选择distinct count(id)vs select count(distinct
- php – MySQL中固定数量字符串的最佳实践?