Apache DBUtils和标量值

时间:2013-03-23 22:06:12

标签: java apache-commons-dbutils

我需要使用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测试它时,我得到正确的数字。

2 个答案:

答案 0 :(得分:2)

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

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

答案 1 :(得分:1)

嗯,没有什么比重命名标准方案名称“public”(PostgreSQL)更好,而不是在SQL中使用它,这是正确的方法:

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

希望有人能提供帮助。