结果集包含 int8 类型的列,但是 getInt 或 getByte 都无法获取列的值

resultset contains int8 type column however neither getInt or getByte is able to fettch the value of column

我正在连接到 postgresql 数据库并尝试获取特定员工的数量

这是我正在使用的查询

select 来自 new_employees 的计数 (*),其中 joining_date 在“10-01-2019”和“11-01-2019”之间

此查询正确给出计数为 20

现在我尝试通过 groovy 脚本和

连接同一个数据库

在结果集中,我通过这个

获取了值
int countOfEmployees =  rs.getInt("count");

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

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

我使用相同的代码

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

但如果没有帮助

我还尝试检查结果集是否为非空,并且还发现 count 列的类型为 int8 通过使用 resulsetmetadata

ResultsetMetaData rsmd = rs.getMetaData();
System.out.println("Type: " + rsmd.getColumnTypeName(1)); 

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

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

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

int8 映射到 long 输入 Java。 这可能会造成混淆,因为在像 C# 这样的编程语言中,我们使用 int64int32 分别代表 longint

来源:
1. this
2. here