gpt4 book ai didi

java - executeUpdate 在大表上返回负值

转载 作者:行者123 更新时间:2023-11-29 21:04:53 25 4
gpt4 key购买 nike

使用 readline 5.1 运行 mysql Ver 15.1 Distrib 5.5.44-MariaDB,适用于 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。

当我从表中删除所有导入的记录时,结果也是相同的:“从 CDRLEC 中删除”。我处理了 -24641 行。

导出和导入已成功执行。只是行数不是 40895,而是 -24641。有人可以帮我弄清楚到底发生了什么事吗?

最佳答案

我使用的是 JDBC 驱动程序:MariaDB 连接器/J 1.4.2

我通过切换到: JDBC 驱动程序:MySQL-AB JDBC 驱动程序 mysql-connector-java-3.0.17-ga 解决了该问题

代码现在可以按预期工作。

关于java - executeUpdate 在大表上返回负值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36906332/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com