【问题标题】:Apache DBUtils and scalar valueApache DBUtils 和标量值
【发布时间】:2013-03-13 15:00:21
【问题描述】:

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

【问题讨论】:

    标签: java apache-commons-dbutils


    【解决方案1】:

    希望下面的代码可以帮助到你,ScalarHandler 只取一列值。

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

    【讨论】:

      【解决方案2】:

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

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

      希望有人能提供帮助。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2013-12-10
        • 2012-02-03
        • 1970-01-01
        • 2013-06-09
        • 2015-12-04
        • 2012-11-07
        • 2011-10-31
        相关资源
        最近更新 更多