开发者社区> 问答> 正文

jfinal的Record怎么扩展或者加入自定义方法?报错

@JFinal 你好,想跟你请教个问题:一条普通的sql:select count(*) as cnt from users;

使用jfinal取出来是BigDecimal,而预期的则是int或者long

record = Db.find(sql);

record.getInt("cnt");//会报错ClassCast异常

如果record有类似方法就好了:record.asInt("cnt"),这个方法会进行自动转型

但是发现jfinal里面现在是直接new的Record,无法进行扩展

展开
收起
爱吃鱼的程序员 2020-06-22 13:43:37 500 0
1 条回答
写回答
取消 提交回答
  • https://developer.aliyun.com/profile/5yerqm5bn5yqg?spm=a2c6h.12873639.0.0.6eae304abcjaIB
    selectcount(*)ascntfromusers;取出来的是Long类型。Longnum=Db.queryLong(sql)即可

    JFinal虽然没有提供getAsInt(String)方法,但是可以这样做:

    record.getNumber(attr).intValue();

    引用来自“JFinal”的答案

    JFinal虽然没有提供getAsInt(String)方法,但是可以这样做:

    record.getNumber(attr).intValue();

    引用来自“kenny0x00”的答案

    引用来自“JFinal”的答案

    JFinal虽然没有提供getAsInt(String)方法,但是可以这样做:

    record.getNumber(attr).intValue();回复 @cctvsod:用get(String)就好,这个可以支持任意类型getStr方法,如果是toString()就好了,现在是(String)getColumns().get("key")经常导致类型转换错误,我就不用关心数据库里是什么类型的字段了,反正只是页面展示又不进行计算
    2020-06-22 13:43:55
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
低代码开发师(初级)实战教程 立即下载
冬季实战营第三期:MySQL数据库进阶实战 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载