如何在Java程序中访问DQL count()查询的值



我想使用DQL的COUNT命令获得我正在查找的值。通常我在gettint () 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");
}
Tomcat结果

DfException:: THREAD: http-8080-2;MSG: [DM_QUERY_E_SYNTAX]error: "语法分析器错误(语法错误)发生在:select count(*) as count";错误代码:100;下:空

您正在使用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");

虽然@Miki已经回答了这个问题,但我想在这里添加一件小事,如果你没有指定任何别名,下面的代码也应该工作。

{
  IDfCollection total = dql.execute(session, IDfQuery.DF_READ_QUERY);
  while (total.next()){
    cint = total.getInt("count(*)");
  }
}

最新更新