gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-11-29 13:07:56 24 4
gpt4 key购买 nike

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

这是我正在使用的查询

select count(*) from new_employees where joining_date between '10-01-2019' AND '11-01-2019'

此查询正确给出计数为 20

enter image description here

现在我尝试通过我的 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 也没有用,我 try catch 变量中的值,然后尝试将其转换为 int,但该值仍然为零。

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

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

最佳答案

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

来源:
1. this
2. here

关于java - 结果集包含 int8 类型的列,但是 getInt 或 getByte 都无法获取列的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58748626/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com