Apache DBUtils 和标量值

Posted

技术标签:

【中文标题】Apache DBUtils 和标量值【英文标题】:Apache DBUtils and scalar value 【发布时间】: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 测试它时,我得到了正确的数字。

【问题讨论】:

【参考方案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 = ?";

希望有人能提供帮助。

【讨论】:

以上是关于Apache DBUtils 和标量值的主要内容,如果未能解决你的问题,请参考以下文章

Apache DBUtils框架 结果处理器

数据库基础_JDBC[5]_Dbutil以及一个简单的数据库存储过程

DbUtil组件及C3P0数据库连接池组件的使用

练习java jdcb 用apache dbutils 的一些思考

DBUtil

sqlserver中的表值函数和标量值函数