为了账号安全,请及时绑定邮箱和手机立即绑定

如何在 mysql-connector-java 上允许 LOAD DATA

如何在 mysql-connector-java 上允许 LOAD DATA

至尊宝的传说 2021-12-30 20:20:22
过去我经常使用 v5 mysql-connector-java。在 期间LOAD DATA LOCAL INFILE,我通常将连接设置为允许从内存中加载数据,如下所示:com.mysql.jdbc.Connection con;con.setAllowLoadLocalInfile(true);稍后,它将文件直接设置为数据库语句的输入流:((com.mysql.jdbc.Statement) ps).setLocalInfileInputStream(new ByteArrayInputStream(...))现在我正在迁移到8.0.13连接器的版本,该方法不再存在。而且,java.sql.Connection现在必须使用。我现在如何设置属性以允许显式加载连接上的数据?尤其是java.sql.Statement没有.setLocalInfileInputStream()办法?开发人员指南甚至提到了该方法,但没有说明如何访问它:https : //dev.mysql.com/doc/connector-j/8.0/en/connector-j-reference-implementation-notes.html
查看完整描述

3 回答

?
噜噜哒

TA贡献1784条经验 获得超7个赞

首选方法是allowLoadLocalInfile=true在连接字符串中设置连接属性,然后setLocalInfileInputStream(InputStream stream)从转换为接口的 Statement 对象调用该方法com.mysql.cj.jdbc.JdbcStatement


查看完整回答
反对 回复 2021-12-30
?
子衿沉夜

TA贡献1828条经验 获得超3个赞

这对我来说是这样的:

jdbc:mysql://localhost:3306/tempDB?allowLoadLocalInfile=true

它适用于 Mysql8.0.18


查看完整回答
反对 回复 2021-12-30
?
largeQ

TA贡献2039条经验 获得超7个赞

最后我切换到mariadb连接器,它是 的替代替代品mysql,但仍然具有 localinfile 方法。


查看完整回答
反对 回复 2021-12-30
  • 3 回答
  • 0 关注
  • 360 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信