结果集包含int8类型的列,但是getInt或getByte均无法确定列的值

我正在连接到Postgresql数据库,并试图获取特定员工的人数

这是我正在使用的查询

从新雇员中选择count(*),其加入日期为'10 -01-2019'和'11 -01-2019'

此查询正确计数为20

结果集包含int8类型的列,但是getInt或getByte均无法确定列的值

现在我尝试通过groovy脚本和

连接同一数据库

在结果集上,我以此获取了值

int countOfEmployees =  rs.getInt("count");

当我打印该值时,它正确地给出了20

但是,当我尝试使用Java连接同一数据库时,该值显示为0

我使用相同的代码

int countOfEmployees =  rs.getInt("count");

但是如果没有帮助

我还尝试并检查了结果集是否为空,并通过使用resulsetmetadata

来发现 count列的类型为int8
ResultsetMetaData rsmd = rs.getMetaData();
System.out.println("Type: " + rsmd.getcolumnTypeName(1)); 

即使使用getByte也没有用,我尝试捕获变量中的值,然后尝试将其转换为int,但该值仍为零。

Byte countOfEmp = rs.getByte("count");
int countOfEmpConverted = countOfEmp.intvalue();

如果有人知道我做错了什么,请帮忙!

kewen163 回答:结果集包含int8类型的列,但是getInt或getByte均无法确定列的值

int8映射为Java中的long类型。 这可能会造成混淆,因为在C#这样的编程语言中,int64int32分别使用了longint

资料来源:
1. this
2. here

本文链接:https://www.f2er.com/3144940.html

大家都在问