3

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

4

2 回答 2

2

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

public Object queryColumnVaue(String sql,String columnName) throws SQLException { 
     ScalarHandler<Object> kh = new ScalarHandler<Object>(columnName);
     return query(sql,kh);
 }
于 2015-04-09T06:02:20.067 回答
1

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

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

希望有人会有所帮助。

于 2013-03-23T22:28:29.810 回答