Как получить доступ к значению запроса DQL count() в программе Java

Я хочу получить значение, которое я нахожу, используя команду COUNT DQL. Обычно я ввожу имя столбца, к которому хочу получить доступ, в метод getInt() getString(). Что я должен делать, когда нет определенного имени столбца.

{
    String query = "select count(*) as count from dm_user;";
    return query;           
}

Код для получения результата

{
    IDfCollection total = dql.execute(session, IDfQuery.DF_READ_QUERY);

    while (total.next()){
        cint = total.getInt("count");
}

Томкэт Результат

DfException:: ПОТОК: http-8080-2; MSG: [DM_QUERY_E_SYNTAX]ошибка: "Ошибка парсера (синтаксическая ошибка) произошла рядом с: select count(*) as count"; КОД ОШИБКИ: 100; СЛЕДУЮЩИЙ: ноль


person Zeus07    schedule 30.09.2016    source источник


Ответы (2)


Вы используете count, которое является ключевым словом для пользовательского имени вашего столбца, ошибка, которую вы опубликовали, ясно говорит об этом: A Parser Error (syntax error)

Это будет делать

select count(*) as quantity from dm_user;

и получение результата, например

IDfCollection total = dql.execute(session, IDfQuery.DF_READ_QUERY);

    while (total.next()){
        cint = total.getInt("quantity");

буду работать

person Miki    schedule 30.09.2016
comment
вы можете пометить ответ как принятый (кажется, вы не делаете этого и на другие вопросы) - person Miki; 03.10.2016

Хотя @Miki уже ответил на него, но я хотел бы добавить здесь одну небольшую вещь, что приведенный ниже код тоже должен работать, если вы не указали какой-либо псевдоним.

{
  IDfCollection total = dql.execute(session, IDfQuery.DF_READ_QUERY);

  while (total.next()){
    cint = total.getInt("count(*)");
  }
}
person Sanjeev Dhiman    schedule 30.09.2016
comment
Я тоже пробовала по твоему, тоже получилось! Спасибо Санджив! - person Zeus07; 03.10.2016