语句返回错误的值

时间:2015-02-12 17:24:37

标签: java sql hsqldb

我有一个使用HSQLDB的JAVA应用程序。有一个名为'tblUser'的表格,其中包含名为bigint的列'tongHH'类型。如果我使用HSQLDB DatabaseManager运行以下查询:

select sum(tongHH) from tblUser. 

DBM返回正确的值 如果我使用以下JAVA代码使用相同的查询读出此数据,则java始终打印错误的值。我得到65,我预计3905

public int getParentID(String query) {
    int a = 0;
    Connection conn = null;
    ResultSet rs = null;
    try {
       conn = MyConection.getConnection();
       Statement st = conn.createStatement();
       rs = st.executeQuery(query);
while(rs.next()){
    a=rs.getByte(1);
}
} catch (Exception e) {
    e.printStackTrace();
    }finally{
        try {         
            MyConection.closeConnection(conn, null, rs);
        } catch (Exception e) {
        }
    }
return a;
}

2 个答案:

答案 0 :(得分:2)

您正试图从byte检索ResultSet

作为3905的值int是:

00000000 00000000 00001111 01000001

将值设为byte仅保留最后8位,或

01000001

65

改为呼叫the getInt method

答案 1 :(得分:0)

你想返回一个int,但是当你从recordset读取值时,你使用的是getByte(1),应该是getInt(1)