我有一个使用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;
}
答案 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)