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

过去我经常使用 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


至尊宝的传说
浏览 365回答 3
3回答

噜噜哒

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

子衿沉夜

这对我来说是这样的:jdbc:mysql://localhost:3306/tempDB?allowLoadLocalInfile=true它适用于 Mysql8.0.18

largeQ

最后我切换到mariadb连接器,它是 的替代替代品mysql,但仍然具有 localinfile 方法。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java