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 和标量值的主要内容,如果未能解决你的问题,请参考以下文章
数据库基础_JDBC[5]_Dbutil以及一个简单的数据库存储过程