使用readline 5.1运行mysql Ver 15.1 Distrib 5.5.44-MariaDB for Linux(x86_64)
我编写了一个Java servlet,它在SQL导出语句中运行executeUpdate()并返回整数值。
String sql = "SELECT TRIM(CONCAT( field1, CallDate, field2, Minutes, field3, field4 )) INTO OUTFILE '/var/www/html/pld/CDROUT/test2.txt' LINES TERMINATED BY '\n' FROM CDRLEC";
Statement s = dbConPLD.createStatement();
int rows = s.executeUpdate(sql);
// Returns number of rows affected by this process
return (rows == 0) ? 0 : rows;
// Then, in the calling servlet, I have this
String returnOutput = Integer.toString(rows);
return returnOutput;
这适用于只有几千行的小表。当我在一个有40,000行(确切地说是40,895)的表上运行它时,我得到一个大的负数:-24641。执行import语句时的结果相同。该文件为14MB。
当我从表中删除所有导入的recods时也是同样的结果:"从CDRLEC"中删除。我处理了-24641行。
导出和导入成功执行。它只是看到40895而不是看到-24641的行。有人能帮我弄清楚到底发生了什么事吗?
答案 0 :(得分:0)
我使用的是JDBC驱动程序:MariaDB connector / J 1.4.2
我通过切换到:JDBC驱动程序解决了这个问题:MySQL-AB JDBC驱动程序mysql-connector-java-3.0.17-ga
代码现在按预期工作。