我需要使用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测试它时,我得到正确的数字。
答案 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 = ?";
希望有人能提供帮助。