开发者社区> 问答> 正文

Db.queryInt用法请教~ 400 请求报错 

@JFinal 你好,想跟你请教个问题:老大,我用Db.queryInt("select count(1) from user")的时候,报下面的错。
====================================================
java.lang.ClassCastException: java.lang.Long cannot be cast to java.lang.Integer
====================================================
DEBUG到DbPro.queryColumn方法,发现List<T> result = query(sql, paras);这个result里面只有一个[0],但是这个0居然是Long型的。这是bug吗?还是我用错了?请指教~
(我用Db.queryLong就不会出错)

展开
收起
kun坤 2020-05-29 16:30:23 777 0
1 条回答
写回答
取消 提交回答
  •         sql 中的 count sum 等函数返回的结果会自动变成 Long,这是 JDBC 自动进行转换的,因为函数计算可能会数据溢出,例如对多个非常大的 Integer 数据进行 sum 时超过Integer.MAX_VALUE时就数据溢出了。
        使用 Db.queryLong(sql) 即可 ######回复 @我是车子啊 : 例如,你要查找某个nickName 所对应的id号:Db.queryInt("select id from user where nickName=? limit 1", "james");######老大 queryInt这个方法有正确的打开方式么,能不能示例一个######谢老大指点

    2020-05-29 16:30:31
    赞同 展开评论 打赏
问答分类:
SQL
问答地址:
问答排行榜
最热
最新

相关电子书

更多
SQL Server 2017 立即下载
PostgresChina2018_董红禹_SQL_Server迁移PG经验分享 立即下载
从理论到实践,深度解析MySQL Group Replication 立即下载