2016-09-30 6 views
0

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

{ 
    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"); 
} 

Tomcat Результат

DfException:: THREAD: http-8080-2; MSG: [DM_QUERY_E_SYNTAX]error: "A Parser Error (syntax error) has occurred in the vicinity of: select count(*) as count"; ERRORCODE: 100; NEXT: null

ответ

3

Вы используете 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"); 

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

+0

Да, это сработало! Спасибо, Мики! – Zeus07

+0

Вы можете отметить ответ как принятый (кажется, что вы не делаете этого и по другим вопросам) – Miki

2

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

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

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

Я тоже пробовал свой путь, и он тоже работал! Спасибо Sanjeev! – Zeus07