2013-03-23 64 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); 
}