2013-03-23 67 views
3

我需要用DBUtils得到标量值,有人知道如何得到它吗?目前我做:Apache DBUtils和标量值

String sql = "SELECT count(*) FROM t1 WHERE cod = ?"; 
    final QueryRunner run = new QueryRunner(new AppDataSource()); 
    ScalarHandler scalar = new ScalarHandler(); 
    long count = -1l; 
    try{ 
     Object[] params = 
     { 
       code 
     }; 
     count = ((Long) run.query(sql, scalar, params)).longValue(); 
    } 
    catch(SQLException e){ 
     e.printStackTrace(); 
    } 
    System.out.println(count); 

但结果仍然是-1。当我用db util测试它时,我得到了正确的数字。

回答

1

嗯,没有什么比重新命名标准方案名称为“公共”(PostgreSQL的),比SQL不使用它,这是正确的做法:

String sql = "SELECT count(*) FROM \"MySchema\".t1 WHERE cod = ?"; 

希望能有人帮助。

2

我希望下面的代码可以帮助你,ScalarHandler只是选择一个列值。

public Object queryColumnVaue(String sql,String columnName) throws SQLException { 
    ScalarHandler<Object> kh = new ScalarHandler<Object>(columnName); 
    return query(sql,kh); 
}