набор результатов содержит столбец типа int8, однако ни getInt, ни getByte не могут получить значение столбца - PullRequest
1 голос
/ 07 ноября 2019

Я подключаюсь к базе данных postgresql и пытаюсь получить количество определенных сотрудников

, этот запрос я использую

select count (*) из new_employees, где joining_date Между '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");

, но если это не помогает

Я также попробовал и проверил, является ли набор результатов не пустым, а также обнаружил, что столбец счетчика имеет тип int8 , используя resulsetmetadata

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

Даже использование getByte бесполезноЯ попытался захватить значение в переменной, а затем попытался преобразовать его в int ещезначение было ноль.

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

Если кто-нибудь знает, если я что-то делаю не так, пожалуйста, помогите!

1 Ответ

0 голосов
/ 07 ноября 2019

int8 соответствует типу long в Java. Это может сбивать с толку, потому что в таких языках программирования, как C#, мы используем int64 и int32 для long и int соответственно.

Источник:
1. this
2. здесь

...