[英]Java method (type, double) returns negative value for large number (not large enough to exceed max value)
[英]executeUpdate returns negative value on large table
使用readline 5.1為Linux(x86_64)運行mysql Ver 15.1 Distrib 5.5.44-MariaDB
我寫了一個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。 執行導入語句時,結果相同。 該文件是14MB。
當我從表中刪除所有導入的Recod時,結果也相同:“從CDRLEC中刪除”。 我得到了-24641行。
導出和導入已成功執行。 只是沒有看到40895,而是看到-24641行。 有人可以幫我弄清楚到底發生了什么嗎?
我正在使用JDBC Driver:MariaDB連接器/ J 1.4.2
我通過切換到以下方法解決了該問題:JDBC驅動程序:MySQL-AB JDBC驅動程序mysql-connector-java-3.0.17-ga
代碼現在按預期工作。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.