如何允许在mysql连接器java上加载本地数据填充?

dxxyhpgq  于 2021-06-18  发布在  Mysql
关注(0)|答案(4)|浏览(353)

过去我用的是v5 mysql-connector-java 很多。期间 LOAD DATA LOCAL INFILE ,我通常将连接设置为允许从inmemory加载数据,如下所示:

com.mysql.jdbc.Connection con;
con.setAllowLoadLocalInfile(true);

然后,将文件直接设置为数据库语句的inputstream:

((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

fnvucqvd

fnvucqvd1#

首选方法是设置连接属性 allowLoadLocalInfile=true 然后调用方法 setLocalInfileInputStream(InputStream stream) 从语句对象强制转换到接口 com.mysql.cj.jdbc.JdbcStatement .

nzk0hqpo

nzk0hqpo2#

万一有人来看这个班就得搬走。它现在在里面 com.mysql.cj.jdbc.StatementImpl 至少在8.0.15中

mitkmikd

mitkmikd3#

这就是我的工作原理:

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

它适用于mysql8.0.18

mu0hgdu0

mu0hgdu04#

最后我换成了 mariadb 连接器,用于替换 mysql ,但仍然有localinfile方法。

相关问题